当前位置:   article > 正文

Python根据条件在字典、列表、集合中筛选数据_python字典根据value筛选

python字典根据value筛选

python中,要对列表、字典、集合进行数据筛选,最简单的方式就是用遍历,逐一对比,将符合条件的元素保存。这种方式虽然简单,但不够简洁优雅,以下用实例说明其他实现方式。

本文示例代码均用python3实现

列表、字典、集合解析

筛选列表数据

构建一个数值范围在-5至20的10个元素的列表,并将该列表中大于3的数据取出

构建列表

  1. from random import randint
  2. data = [randint(-5, 20) for _ in range(10)] # 表示循环了10次,每次循环都从-520之间取一个数值保存到data
  3. print(data)

用遍历的方式筛选数据

  1. '''迭代'''
  2. for x in data:
  3. if x > 3:
  4. result.append(x)
  5. print(result)

使用filter函数

  1. '''filter函数'''
  2. result = list(filter(lambda x: x > 3, data)) # 使用匿名函数对列表data进行过滤
  3. print(result)

使用列表解析

  1. '''列表解析'''
  2. result = [x for x in data if x > 3]
  3. print(result)

筛选字典元素

假设一个班里有30个学生,python的考试成绩为0至100分之间,要将<60分的同学筛选出来。

针对此需求,需要先构建一个以学号为key,分数为value的字典

  1. '''构建字典'''
  2. student_score = {x: randint(0, 100) for x in range(1, 31)}
  3. print(student_score)

使用字典解析

  1. result = {k:v for k, v in student_score.items() if v < 60}
  2. print(result)

集合解析

筛选一个集合中的偶数

构建集合

  1. myset = {randint(5, 20) for _ in range(20)} # set集合中不能包含重复的数据,循环20次有可能获取到重复的数据,因此元素的个数可能小于20
  2. print(myset)
  3. print(type(myset))

使用集合解析

  1. result = {x for x in myset if x % 2 == 0}
  2. print(result)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/210078
推荐阅读
相关标签
  

闽ICP备14008679号