如何检查列表中是否有空字符串

7 投票
5 回答
36482 浏览
提问于 2025-04-18 07:19

假设我有一个列表 ['', '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

撰写回答