从字符串列表中删除空字符串
我想从python中的字符串列表中删除所有空字符串。
我的想法是这样的:
while '' in str_list:
str_list.remove('')
有没有更多的pythonic方法来做到这一点?
我想从python中的字符串列表中删除所有空字符串。
我的想法是这样的:
while '' in str_list:
str_list.remove('')
有没有更多的pythonic方法来做到这一点?
我会使用过滤器
:
str_list = filter(None, str_list)
str_list = filter(bool, str_list)
str_list = filter(len, str_list)
str_list = filter(lambda item: item, str_list)
Python 3 从 返回一个迭代器,因此应包装在对filter
list()
str_list = list(filter(None, str_list))
使用列表理解是最Pythonic的方式:
>>> strings = ["first", "", "second"]
>>> [x for x in strings if x]
['first', 'second']
如果必须就地修改列表,因为还有其他引用必须查看更新的数据,则使用切片分配:
strings[:] = [x for x in strings if x]