Bootstrap

Python基础小知识问答系列-过滤列表元素

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 True
    except ValueError:
        return False


print("****filter函数,自定义复杂条件函数,过滤列表内容的结果是:")
print(list(filter(filter_number, test_list_multi)))
  • 示例结果:

;