假设我有一个列表['', 'Tom', 'Jane', 'John', '0']
,我写了以下内容以检查它是否有空字符串''
:
if any('' in s for s in row[1:]):
print "contains empty string, continue now"
continue
我希望这只能选择空字符串,但这也会选择包含' 0'的列表。 ' 0' 0字符串有效,我不想过滤掉它。那么如何在python列表中检查空字符串呢?
答案 0 :(得分:6)
您可以检查列表中是否有元素''
:
if '' in lst:
# ...
if '' in lst[:1]: # for your example
# ...
以下是一个例子:
>>> lst = ['John', '', 'Foo', '0']
>>> lst2 = ['John', 'Bar', '0']
>>> '' in lst
True
>>> '' in lst2
False
答案 1 :(得分:3)
any('' in s for s in row[1:])
为列表s
中的每个字符串row[1:]
检查空字符串是否为其子字符串。这总是正确的,琐碎的。你的意思是
any(s == '' for s in row[1:])
但这可以缩写为
'' in row[1:]
答案 2 :(得分:3)
而不是使用:
if any('' in s for s in row[1:]):
将您的状况改为:
if '' in your_list:
其中 your_list 是您正在检查的列表名称。
答案 3 :(得分:2)
让我们举个例子,给名单命名:
list = ['', 'Tom', 'Jane', 'John', '0']
if '' in list:
do something
这就是你所需要的一切!
答案 4 :(得分:1)
这个怎么样:
if any(len(x) == 0 for x in row):
print("contains empty string, continue now")
continue