假设我有一个空字符串,它将被拆分:
>>>''.split(',')
['']
拆分的结果是['']
。我使用 bool
来检查它是否为空。它将返回 True
。
>>>bool([''])
True
如何检查拆分结果是否为空?
最佳答案
使用 bool([''])
,您正在检查列表 ['']
是否包含任何内容,确实如此 ,内容恰好是空字符串''
。
如果你想检查列表中的所有元素是否不为“空”(所以如果列表包含字符串''
,它将返回False
) 您可以使用内置函数 all()
:
all(v for v in l)
这会获取列表 l
中的每个元素 v
并检查它是否具有 True
值;如果 所有 元素都返回 True
如果至少有一个没有返回 False
。例如:
l = ''.split(',')
all(v for v in l)
Out[75]: False
您可以将其替换为 any()
执行部分检查并查看列表 l
中的任何项目 是否具有 True
的值。
一个更全面的示例*,同时包含这两种用途:
l = [1, 2, 3, '']
all(l)
# '' doesn't have a True value
Out[82]: False
# 1, 2, 3 have a True value
any(l)
Out[83]: True
*作为 @ShadowRanger 在评论中指出,同样的事情可以用 all(l)
或 any(l)
来完成,因为它们都只接受一个可迭代的结尾。
关于python - 如何检查列表是否包含空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167751/