从python中的列表中获取第一个非空字符串

时间:2009-07-16 14:30:41

标签: python string list

在Python中我有一个字符串列表,其中一些可能是空字符串。获得第一个非空字符串的最佳方法是什么?

6 个答案:

答案 0 :(得分:21)

next(s for s in list_of_string if s)

编辑:由Stephan202在评论中建议的py3k校对版,谢谢。

答案 1 :(得分:5)

要删除所有空字符串,

[s for s in list_of_strings if s]

要获取第一个非空字符串,只需创建此列表并获取第一个元素,或使用wuub建议的惰性方法。

答案 2 :(得分:3)

def get_nonempty(list_of_strings):
    for s in list_of_strings:
        if s:
            return s

答案 3 :(得分:3)

这是一个简短的方法:

filter(None, list_of_strings)[0]

编辑:

这是一个更好的方式:

from itertools import ifilter
ifilter(None, list_of_strings).next()

答案 4 :(得分:0)

要获取列表中的第一个非空字符串,您只需循环它并检查它是否为空。这就是它的全部内容。

arr = ['','',2,"one"]
for i in arr:
    if i:
        print i
        break

答案 5 :(得分:0)

基于你的问题,我必须承担很多,但要“获取”第一个非空字符串:

(i for i, s in enumerate(x) if s).next()

返回列表中的索引。 'x'绑定指向您的字符串列表。