python如何在列表、字典中筛选数据

  • Post category:Python

我来为您讲解一下Python如何在列表、字典中筛选数据的完整攻略。

筛选列表中数据

针对列表,Python提供了很多筛选和过滤数据的方法。下面我们来分别介绍它们。

通过循环筛选

通过循环遍历列表的方法,依次判断每个元素是否符合要求。以下示例代码为从一个列表中筛选出所有大于2的元素。

my_list = [1, 2, 3, 4, 5]
new_list = []
for item in my_list:
    if item > 2:
        new_list.append(item)
print(new_list)

输出结果为:[3, 4, 5]

使用filter()函数筛选

Python中提供了内置函数filter(),该函数根据传入的函数对列表进行筛选。以下示例代码为从一个列表中筛选出所有大于2的元素。

my_list = [1, 2, 3, 4, 5]
new_list = list(filter(lambda x: x > 2, my_list))
print(new_list)

输出结果为:[3, 4, 5]

使用列表解析式筛选

使用列表解析式可以更简单地筛选列表中的数据。以下示例代码为从一个列表中筛选出所有大于2的元素。

my_list = [1, 2, 3, 4, 5]
new_list = [x for x in my_list if x > 2]
print(new_list)

输出结果为:[3, 4, 5]

筛选字典中数据

针对字典而言,我们主要是针对其key、value或item进行筛选。以下我们分别介绍如何筛选。

筛选字典中key

以下示例代码为从一个字典中筛选出所有key为1的元素。

my_dict = {1: 'a', 2: 'b', 3: 'c'}
new_dict = {k: v for k, v in my_dict.items() if k == 1}
print(new_dict)

输出结果为:{1: 'a'}

筛选字典中value

以下示例代码为从一个字典中筛选出所有value为’b’的元素。

my_dict = {'a': 1, 'b': 2, 'c': 3}
new_dict = {k: v for k, v in my_dict.items() if v == 2}
print(new_dict)

输出结果为:{'b': 2}

筛选字典中item

以下示例代码为从一个字典中筛选出所有item中key为1,value为’a’的元素。

my_dict = {1: 'a', 2: 'b', 3: 'c'}
new_dict = {k: v for k, v in my_dict.items() if k == 1 and v == 'a'}
print(new_dict)

输出结果为:{1: 'a'}

以上就是Python在列表、字典中筛选数据的完整攻略,希望能对您有所帮助。