Я пытаюсь распечатать только непустые строки в списке.Я не могу заставить работать нижеприведенное, что я делаю не так?
print item in mylist if item is not ""
Недопустимый синтаксис: print item in mylist if item is not ""
Возможно, вы могли бы достичь того, чего хотите, используя понимание списка:
>>> mylist = ["foo","bar","","baz"] >>> print [item for item in mylist if item] ['foo', 'bar', 'baz']
Вы можете создать генератор для захвата элементов в списке, которые не являются пустыми.
nonempties = (item for item in mylist if item)
Затем зациклите и напечатайте или объедините их в строку.
print ' '.join(nonempties)
Встроенный filter() хорошо подходит именно для этого, просто передайте None вместо функции:
filter()
None
>>> filter(None, ['Abc', '', 'def', None, 'ghi', False, 'jkl']) ['Abc', 'def', 'ghi', 'jkl']
Подробности на http://docs.python.org/library/functions.html