我有一个字符串列表,其中一些恰好是None:
headers = ['Name', None, 'HW1', 'HW2', None, 'HW4', 'EX1', None, None]
现在我想迭代这个列表,但跳过None条目。例如,这样的事情会很好:
for header in headers if header: print(header)
但这不起作用。有两种方法可以让它工作,但我不喜欢这两种方法:
for header in (item for item in headers if item): print(header)
和
for header in headers:
if header: print(header)
我很好奇是否有更好的方法。我觉得无视无。应该是非常基础的。
答案 0 :(得分:10)
headers = ['Name', None, 'HW1', 'HW2', None, 'HW4', 'EX1', None, None]
for header in filter(None, headers):
print header
答案 1 :(得分:4)
您可以使用filter
:
headers = filter(None, headers)
答案 2 :(得分:2)
你可以通过列表理解来删除None
项:
headers = [item for item in headers if item is not None]
for item in header:
print item
答案 3 :(得分:0)
您可以使用简单的列表理解过滤掉Nones
:
headers = [header for header in headers if header]
然后拨打您的密码:
for header in headers:
print(header)