从字符串列表中删除空字符串

从字符串列表中删除空字符串

我希望从python中的字符串列表中删除所有空字符串。

我的想法是这样的:

while '' in str_list:
    str_list.remove('')

还有更多的仿生方法吗?


慕容3067478
浏览 1729回答 3
3回答

慕哥6287543

我会用filter:str_list = filter(None, str_list) # fasteststr_list = filter(bool, str_list) # fasteststr_list = filter(len, str_list)  # a bit slowerstr_list = filter(lambda item: item, str_list) # slower than list comprehensionPython 3返回一个迭代器。filter,所以应该在调用list()str_list = list(filter(None, str_list)) # fastest(等。)测试:>>> timeit('filter(None, str_list)', 'str_list=["a"]*1000', number=100000)2.4797441959381104>>> timeit('filter(bool, str_list)', 'str_list=["a"]*1000', number=100000)2.4788150787353516>>> timeit('filter(len, str_list)', 'str_list=["a"]*1000', number=100000)5.2126238346099854>>> timeit('[x for x in str_list if x]', 'str_list=["a"]*1000', number=100000)13.354584932327271>>> timeit('filter(lambda item: item, str_list)', 'str_list=["a"]*1000', number=100000)17.427681922912598

繁星淼淼

清单理解strings = ["first", "", "second"][x for x in strings if x]产出:['first', 'second']编辑:按建议缩短
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python