实际问题有哪些?

  1. 过滤掉列表[3,9,-1,10.-2......] 中负数
  2. 筛选出字典{‘li_ming’:90,’xiao_hong’:60,’li_kang’:95,’bei_men’:98} 中值高于90的项
  3. 筛选出集合{3,9,-1,10.-2......]中能被3整除的数

问题1如何解决?

  最普通方法

#!/usr/bin/python3

def filter_l(data):
res = []
for i in data:
if i > 0:
res.append(i)
return res if __name__ == '__main__':
data = [3, 9, -1, 10, -2]
new_l = filter_l(data)
print(new_l)

如何解决列表问题?

   初始化列表: 生成 -10 到 10 的随机数列表,去除负数

  1filter方法:

#!/usr/bin/python3

from random import randint

def filter_l(data):
# 循环data列表,把值一个一个取出 交个lambda中x,如何lambda函数为True,返回x生成一个新的filter对象
return filter(lambda x: x >= 0, data) if __name__ == '__main__':
# 列表生成10个 -10 到 10 的随机数
data = [randint(-10, 10) for _ in range(10)]
print(data)
# new_l 为可迭代对象
new_l = filter_l(data)
print(list(new_l), type(new_l))

2. 列表解析:

#!/usr/bin/python3

from random import randint

def filter_l(data):
# 循环data列表,把值一个一个取出 是否满足if条件,满足True返回x生成一个新列表
return [x for x in data if x >=0 ] if __name__ == '__main__':
# 列表生成10个 -10 到 10 的随机数
data = [randint(-10, 10) for _ in range(10)]
print(data)
# new_l 为可迭代对象
new_l = filter_l(data)
print(list(new_l), type(new_l))

运行速度比较:解析 > filter > 普通

如何解决字典?

字典解析,筛选数据:

#!/usr/bin/python3

from random import randint

def filter_l(data):
print(data.items())
# 把字典转换成dict_items,循环里面的key和value,满足if条件返回对应的key和value值
return {k: v for k, v in data.items() if v > 90} if __name__ == '__main__':
# 字典生成式
data = {x: randint(0, 100) for x in range(10)}
print(data)
new_l = filter_l(data)
print(new_l, type(new_l))

  如何解决集合问题?

#!/usr/bin/python3
from random import randint def filter_l(data):
# 迭代集合中值,满足条件为True返回x
return {x for x in data if x % 3 == 0} if __name__ == '__main__':
# 集合生成式
data = {randint(0, 100) for x in range(10)}
print(data)
new_l = filter_l(data)
print(new_l, type(new_l))

逻辑整理

  无论是解析器还是普通方法,都需要for循环,if判断,逻辑都是满足条件返回值,过滤出满足条件的值,无论是生成器还是解析器都满足这个格式:“ 返回值 for循环 if判断 “,通过lambda满足格 式:“lambda 输入值:条件, 格式化数据

北门吹雪: https://www.cnblogs.com/2bjiujiu/

python_如何在列表、字典中筛选数据?的更多相关文章

  1. Python-在列表、字典中筛选数据

    实际问题有哪些? 过滤掉列表[3,9,-1,10.-2......] 中负数 筛选出字典{'li_ming':90,'xiao_hong':60,'li_kang':95,'bei_men':98} ...

  2. OC中如何把字典中的数据拼接成url字符串

    在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...

  3. Python强化训练笔记(一)——在列表,字典,集合中筛选数据

    列表,字典,集合中根据条件筛选数据,如下所示 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3 ...

  4. 老板让我从上千个Excel中筛选数据,利用Python分分钟解决!

    大家好,又到了Python办公自动化系列. 今天分享一个真实的办公自动化需求,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大! 很多人学习python,不知道从何学起.很多人学习 ...

  5. python将字典中的数据保存到文件中

    d = {'a':'aaa','b':'bbb'}s = str(d)f = open('dict.txt','w')f.writelines(s)f.close()

  6. C# 过滤字典中的数据 并将过滤后的数据转成新的字典对象

    Dictionary<string, object> dic = new Dictionary<string, object>(); dic.Add("); dic. ...

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

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

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

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

  9. Python【列表 字典 元组】

    列表列表用中括号[ ]把各种数据框起来,每一个数据叫作“元素”.每个元素之间都要用英文逗号隔开各种类型的数据(整数/浮点数/字符串)————————————————————————————从列表提取单 ...

随机推荐

  1. hadoop的安装和配置(三)完全分布式模式

    博主会用三篇文章为大家详细说明hadoop的三种模式: 本地模式 伪分布模式 完全分布模式 完全分布式模式: 前面已经说了本地模式和伪分布模式,这两种在hadoop的应用中并不用于实际,因为几乎没人会 ...

  2. 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)

    Flume支持众多的source和sink类型,详细手册可参考官方文档,更多source和sink组件 http://flume.apache.org/FlumeUserGuide.html Flum ...

  3. WinForm响应式布局设计实践

    引言 创建响应式WinForm应用程序并不那么简单. 响应式布局,在此我指的是应用程序在不同屏幕分辨率下的可用性. 对于WinForm应用程序,我们需要明确地根据分辨率来调整控件的大小和重新定位. 虽 ...

  4. POI读取excel工具类(xls,xlsx通用)

    package com.boot.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotF ...

  5. 使用elk转存储日志

    ELK指的是由Elastic公司提供的三个开源组件Elasticsearch.Logstash和Kibana. Logstash:开源的服务器端数据处理管道,能够同时 从多个来源采集数据.转换数据,然 ...

  6. zookeeper之分布式锁以及分布式计数器(通过curator框架实现)

    有人可能会问zookeeper我知道,但是curator是什么呢? 其实curator是apachede针对zookeeper开发的一个api框架是apache的顶级项目 他与zookeeper原生a ...

  7. 关于构造函数和原型prototype对象的理解

    构造函数     1.什么是构造函数 构造函数,主要用于对象创建的初始化,和new运算符一起用于创建对象,一个类可以有多个构造函数,因为函数名相同,所以只能通过参数的个数和类型不同进行区分,即构造函数 ...

  8. 微信小程序登陆授权

    小程序前端代码 function WXlogin(){ wx.login({ success: function (code) { wx.getUserInfo({ success:function( ...

  9. Google学术搜索镜像网站搜集

    Google学术搜索镜像网站: http://scholar.glgoo.com/ https://xie.lu/ https://g.wen.lu/ http://www.gfsoso.com/sc ...

  10. PostgreSQL=>递归查询

    PostgreSQL=>递归查询 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8232073.html 距上次博客更新刚好两周,这两周发生了很多,比如: ...