如何在列表、字典、集合中根据条件筛选数据

问题举例:

过滤列表[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数据结构-如何在列表、字典、集合中根据条件筛选数据的更多相关文章

  1. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  2. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  3. 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧

    实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...

  4. python 学习笔记(一):在列表、字典、集合中根据条件筛选数据

    一.在列表中筛选数据 在列表中筛选出大于等于零的数据,一般通用的用法代码如下: data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表 result = ...

  5. Py小技巧一:在列表,字典,集合中根据条件筛选数据

    1.过滤掉列表中的某些项---列表解析 data=[1,4,2,8,5,-1] res=[] a.依次迭代列表中每一个项 for x in data: if >=0: res.append(x) ...

  6. python3编程技巧二——如何在列表、字典、集合 中根据条件筛选数据

    一.列表筛选数据 # coding=utf-8 from random import randint # 创建随机列表 l = [randint(-10, 10) for i in range(10) ...

  7. python基础===如何在列表,字典,集合中根据条件筛选数据

    #常见的操作如下: data = [1, 5, -3, -2, 6, 0, 9] res = [] for x in data: if x>=0: res.append(x) print(res ...

  8. 1、如何在列表,字典,集合种根据条件筛选数据?2、如何为元组中的每个元素命名,提高程序的可读性3、如何统计出序列中元素出现的频度4、如何根据字典中value的大小,对字典的key进行排序

    一.数据筛选: 处理方式: 1.filter函数在py3,返回的是个生成式. from random import randint data = [randint(-100,100) for i in ...

  9. python 如何在列表list,字典dict,集合set 中根据条件筛选数据

    from random import randint """ list 过滤掉负数 """ data = [randint(-10, 10) ...

随机推荐

  1. python多线程应用——DB2数据库备份

    前言:DB2一个实例下,可以存在多个数据库,之前使用shell备份脚本,但是同一时刻只能备份一个数据库,对于几百G的备份文件,这个速度显然太慢,今天学习了Python多线程,刚好应用一下. 分析:1. ...

  2. 飞鹅云打印 API_C#

    飞鹅云打印: 提交订单支付成功后台自动打印,实现无人销售,自动打印,后台统计打印记录功能:   有自带WIFY:连接到wify就可以打印小票: 有自动SIM卡:第1年免流量费,第2年30一年     ...

  3. 类似于c语言读取文件进行解析

    $log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date('Ym').'/'.date('d').'_er ...

  4. PHP下载远程图片的3个方法

    From: http://blog.csdn.net/iefreer/article/details/46930239 直接上代码 <?php function dlfile1($file_ur ...

  5. Vim文档编辑

    >##一.vim重复命令       ###1.重复执行上次命令       在普通模式下`.`(小数点)表示重复上一次的命令操作       拷贝测试文件到本地目录       ```   $ ...

  6. laravel5.8笔记三:常用命令

    创建控制器 php artisan make:controller Index/IndexController 创建模型 php artisan make:model Index/IndexContr ...

  7. PHPExcel所遇到问题的知识点总结

    工作中进行excel的时候遇到了两个问题, 1.excel表中列值过大,由于没有进行特殊处理,程序没法正常运行: 2.列值中含有日期格式的文本,不能正确读取: 所以通过网络搜索,并解决了问题,记录一下 ...

  8. Android大图片之缩略图,以及对原图依照指定宽高裁剪成缩略图

     <Android大图片之变换缩略图,以及对原始大图片依照指定宽.高裁剪成缩略图> 在Android的ImageView载入图像资源过程中,出于性能和内存开销的须要.有时候须要把一个原 ...

  9. TIJ -- 吐司BlockingQueue

    1. 吐司BlockingQueue 考虑下面这个使用BlockingQueue的示例.有一台机器具有三个任务:一个制作吐司,一个给吐司抹黄油,另一个在抹过黄油的吐司上吐果酱.我们可以通过各个处理过程 ...

  10. 浅谈一下Windows下的用户权限

    大学毕业后,选择做了苹果开发,一直是使用的Mac系统,所以对Windows的基本操作忘得几乎一干二净:因为做内网穿透的需要,要用到Windows下的权限问题,所以重新研究了一下Windows设置用户权 ...