慕哥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