如何检查列表中是否有空字符串
假设我有一个列表 ['', 'Tom', 'Jane', 'John', '0']
,我写了下面的代码来检查这个列表里是否有空字符串 ''
:
if any('' in s for s in row[1:]):
print "contains empty string, continue now"
continue
我本来希望这段代码只找到空字符串,但它却也找到了包含 '0' 的列表。'0' 这个字符串是有效的,我并不想把它过滤掉。那么我该怎么在 Python 列表中检查空字符串呢?
5 个回答
1
这样怎么样:
if any(len(x) == 0 for x in row):
print("contains empty string, continue now")
continue
3
我们来看看你的例子,并给这个列表起个名字:
list = ['', 'Tom', 'Jane', 'John', '0']
if '' in list:
do something
这就是你需要做的全部!
4
any('' in s for s in row[1:])
这段代码会检查列表 row[1:]
中的每个字符串 s
,看看空字符串是否是它的子串。这个检查总是成立,因为空字符串在任何字符串中都是存在的。你想表达的意思是
any(s == '' for s in row[1:])
不过,这个可以简化为
'' in row[1:]
4
不要使用:
if any('' in s for s in row[1:]):
把你的条件改成:
if '' in your_list:
其中 your_list 是你正在检查的列表的名字。
13
你可以简单地检查一下列表里是否有元素 ''
:
if '' in lst:
# ...
if '' in lst[:1]: # for your example
# ...
这里有一个例子:
>>> lst = ['John', '', 'Foo', '0']
>>> lst2 = ['John', 'Bar', '0']
>>> '' in lst
True
>>> '' in lst2
False