Python:Inline是否要打印非空字符串?
我正在尝试打印列表中的非空字符串。我似乎无法让下面的工作,我做错了什么Python:Inline是否要打印非空字符串?,python,if-statement,Python,If Statement,我正在尝试打印列表中的非空字符串。我似乎无法让下面的工作,我做错了什么 print item in mylist if item is not "" 以下语法无效:如果项目不是“”,则在mylist中打印项目。 您或许可以使用列表理解来实现您想要的: >>> mylist = ["foo","bar","","baz"] >>> print [item for item in mylist if item] ['foo', 'bar', 'baz'] 您可
print item in mylist if item is not ""
以下语法无效:
如果项目不是“”,则在mylist中打印项目。
您或许可以使用列表理解来实现您想要的:
>>> 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, ['Abc', '', 'def', None, 'ghi', False, 'jkl'])
['Abc', 'def', 'ghi', 'jkl']
详细信息位于它的作用是什么?你想让它做什么?如果您在mylist中执行了
a=项,如果项不是“”
您希望a
是什么?您将如何向该语句添加()
,以澄清它?在python3中,也可以使用[打印mylist中的项目(如果项目)]
。