我来为您讲解一下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在列表、字典中筛选数据的完整攻略,希望能对您有所帮助。