Python: Inline, если печатать непустые строки? - PullRequest
2 голосов
/ 19 октября 2011

Я пытаюсь распечатать только непустые строки в списке.Я не могу заставить работать нижеприведенное, что я делаю не так?

print item in mylist if item is not ""

Ответы [ 3 ]

7 голосов
/ 19 октября 2011

Недопустимый синтаксис: print item in mylist if item is not ""

Возможно, вы могли бы достичь того, чего хотите, используя понимание списка:

>>> mylist = ["foo","bar","","baz"]
>>> print [item for item in mylist if item]
['foo', 'bar', 'baz']
2 голосов
/ 19 октября 2011

Вы можете создать генератор для захвата элементов в списке, которые не являются пустыми.

nonempties = (item for item in mylist if item)

Затем зациклите и напечатайте или объедините их в строку.

print ' '.join(nonempties)
1 голос
/ 19 октября 2011

Встроенный filter() хорошо подходит именно для этого, просто передайте None вместо функции:

>>> filter(None, ['Abc', '', 'def', None, 'ghi', False, 'jkl'])
['Abc', 'def', 'ghi', 'jkl']

Подробности на http://docs.python.org/library/functions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...