У меня есть filter
в Python3, который я применяю с помощью лямбда-функции. Вот моя функция:Python - использовать инструкцию печати/отладки в Lambda
affy_reader = csv.DictReader(filter(lambda row:
not row[0].startswith('#') and
str(row[0]).isdigit(),
file_pointer),
delimiter='\t',
fieldnames=affy_column_headers)
Есть ли способ, что я могу напечатать значение row
внутри этой лямбда-функции? Я думаю, мне нужно сделать это так, потому что row
находится только в пределах лямбда. Например, были это процедура LISP лямбда, я полагаю, что я мог бы сделать что-то вроде этого:
affy_reader = csv.DictReader(filter(lambda row: print(row)
not row[0].startswith('#') and
str(row[0]).isdigit(),
file_pointer),
delimiter='\t',
fieldnames=affy_column_headers)
Поскольку print()
считывается и выполняется в режиме реального времени. Есть ли способ в Python сделать это? Или, если нет, для меня это хороший способ увидеть эту ценность? Благодаря!
* Я понимаю, что мой пример «LISP» - это Python, а не LISP. Я просто пытался еще больше проиллюстрировать то, что я пытаюсь сделать.
Вы хотите напечатать все строки , или только те, которые проходят фильтр? –
Я бы хотел напечатать все строки, которые, я думаю, Тим. Я просто хочу взглянуть на эту строку, чтобы убедиться, что моя лямбда-функция отфильтровывает именно то, что ей нужно. Я склоняюсь к тому, чтобы разбить его на другую функцию, как это было предложено ... – Houdini
Но тогда вы также должны добавить что-то к выводу, который сообщает вам, какая строка будет отфильтрована, а какая - нет? –