在Python中我有一个字符串列表,其中一些可能是空字符串。获得第一个非空字符串的最佳方法是什么?
答案 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'绑定指向您的字符串列表。