我正在尝试打印列表中的非空字符串。我似乎无法让下面的工作,我做错了什么?
print item in mylist if item is not ""
答案 0 :(得分:7)
以下语法无效:print item in mylist if item is not ""
您可以使用列表理解来实现您想要的目标:
>>> mylist = ["foo","bar","","baz"]
>>> print [item for item in mylist if item]
['foo', 'bar', 'baz']
答案 1 :(得分:2)
您可以创建一个生成器来抓取列表中非空的项目。
nonempties = (item for item in mylist if item)
然后循环并打印或将它们连接成一个字符串。
print ' '.join(nonempties)
答案 2 :(得分:1)
filter()
内置非常适合,只需传递None
而不是函数:
>>> filter(None, ['Abc', '', 'def', None, 'ghi', False, 'jkl'])
['Abc', 'def', 'ghi', 'jkl']
的详细信息