1. 问题:
- 如何根据单一条件过滤列表的元素?
- 如何根据复杂条件过滤列表的元素?
2. 解决方式:
可以使用推导式生成器,进行单一条件的列表元素过滤,尤其是列表内容较多时;
也可以使用filter函数进行列表过滤,尤其是需要自定义较为复杂的过滤条件。
- 示例:
test_list = [1, 3, 6, 2, 9, 10, 4, 23, 100, 39, 91]
test_list_multi = [1, 3, "青果", 2, 9, "test", 23, 100, "NA", 91]# 推导式生成器方式
result_info = (item for item in test_list if item > 50)
print("****推导式生成器方式,过滤列表内容的结果是:")
print(list(result_info))# filter函数方式
filter_list = filter(lambda x: x > 50, test_list)
print("****filter函数,使用简单条件,过滤列表内容的结果是:")
print(list(filter_list))def filter_number(args):try:int(args)return Trueexcept ValueError:return Falseprint("****filter函数,自定义复杂条件函数,过滤列表内容的结果是:")
print(list(filter(filter_number, test_list_multi)))
- 示例结果: