python数据结构-如何在列表、字典、集合中根据条件筛选数据
如何在列表、字典、集合中根据条件筛选数据
问题举例:
过滤列表[1, 2, 5, -1, 9, 10]中的负数
筛选字典{“zhangsan”:97, "lisi":80, "wangwu":60, "liqiang":91}中的值高于90的键值对
筛选集合{89, 70, 60, 80, 90}中能被3整除的元素
列表
一般遇到这种问题,我们首先会想到用for循环的方式去解决
(1)for循环
from random import randint
nums = [randint(-10, 10) for _ in range(20)] #生成一个列表
res_list = []
for ele in nums:
if ele > 0:
res_list.append(ele)
但是这种方式并不pythonic
(2)列表解析
from random import randint
nums = [randint(-10, 10) for _ in range(20)]
res_list = [ele for ele in nums if ele > 0] #list comprehension
(3)filter函数
from random import randint
nums = [randint(-10, 10) for _ in range(20)]
res_filter = filter(lambda x: x > 0, nums) #filter
res_list = list(res_filter)
字典
(1)字典解析
from random import randint
grade_info = {"stu%d" % i: randint(50, 100) for i in range(10)}
res_dict = {k: v for k, v in grade_info.items() if v > 70}
(2)filter函数
from random import randint
grade_info = {"stu%d" % i: randint(50, 100) for i in range(10)}
res_filter = filter(lambda item: item[1] > 70, grade_info.items())
res_dict = dict(res_filter)
集合
集合解析
from random import randint
nums_set = {randint(10, 20) for _ in range(20)}
nums_res = {ele for ele in nums_set if ele % 3 == 0}
filter函数
from random import randint
nums_set = {randint(10, 20) for _ in range(10)}
nums_filter = filter(lambda x: x % 3 == 0, nums_set)
nums_res = set(nums_filter)
参考资料:python3实用编程技巧进阶
python数据结构-如何在列表、字典、集合中根据条件筛选数据的更多相关文章
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧
实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...
- python 学习笔记(一):在列表、字典、集合中根据条件筛选数据
一.在列表中筛选数据 在列表中筛选出大于等于零的数据,一般通用的用法代码如下: data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表 result = ...
- Py小技巧一:在列表,字典,集合中根据条件筛选数据
1.过滤掉列表中的某些项---列表解析 data=[1,4,2,8,5,-1] res=[] a.依次迭代列表中每一个项 for x in data: if >=0: res.append(x) ...
- python3编程技巧二——如何在列表、字典、集合 中根据条件筛选数据
一.列表筛选数据 # coding=utf-8 from random import randint # 创建随机列表 l = [randint(-10, 10) for i in range(10) ...
- python基础===如何在列表,字典,集合中根据条件筛选数据
#常见的操作如下: data = [1, 5, -3, -2, 6, 0, 9] res = [] for x in data: if x>=0: res.append(x) print(res ...
- 1、如何在列表,字典,集合种根据条件筛选数据?2、如何为元组中的每个元素命名,提高程序的可读性3、如何统计出序列中元素出现的频度4、如何根据字典中value的大小,对字典的key进行排序
一.数据筛选: 处理方式: 1.filter函数在py3,返回的是个生成式. from random import randint data = [randint(-100,100) for i in ...
- python 如何在列表list,字典dict,集合set 中根据条件筛选数据
from random import randint """ list 过滤掉负数 """ data = [randint(-10, 10) ...
随机推荐
- 哪个 Linux 内核版本号是 “稳定的”? | Linux 中国
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79329760 https://mmbi ...
- java jdk 打开出错 Failed to load the JNI shared library
``` Failed to load the JNI shared library 解决方法 换了JDK 32位x86的 打开32位 eclipse 2017 oxygen 出现这个问题,修改 配置文 ...
- <数字签名是什么>笔记
此篇是看 数字签名是什么? 的理解与笔记 1. 使用非对称密钥发送数据到服务器. 发送方(C端)使用公钥对自己的数据进行加密,接收方(S端)使用私钥解密,即使发送出去的数据被拦截到,也不知道 ...
- 【GIS】Mapbox-json配置
1.json的MIME配置 application/json 问题:客户端浏览器不接受 MIME 类型的请求页面
- LeetCode - 804. Unique Morse Code Words
International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...
- 基于Schema配置切面
使用基于Schema的切面定义后,切点.增强类型的注解信息从切面类中剥离出来,原来的切面类也就蜕变为真正意义上的POJO了. 1.一个简单切面的配置 基于Schema配置的切面示例: < ...
- postgresql数据库安装及简单操作
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...
- mac下supervisor安装及简单配置
supervisor是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(守护进程).可以用他来管理自己的“服务程序”. 安装 首先安装Python,Mac系统好像自带. 执 ...
- 窗口,父窗口parentwindow,所有者窗口ownerwindow
参考文档:http://www.cnblogs.com/fwycmengsoft/p/4026592.html 一. parent:创建者,owner:所有者 小玉的父母生下小玉,养到8岁,卖给贾府当 ...
- 关于IOC和DI
IoC (Inverse of Control)即控制反转.是指将原来程序中自己创建实现类对象的控制权反转到IOC容器中.只需要通过IOC获了对象的实例,将IOC当成一个黑盒子.工厂.容器. spri ...