python如何在列表、字典中筛选数据
python如何在列表、字典中筛选数据?
实际问题有哪些?
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 的随机数列表,去除负数
1. filter方法:
#!/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 输入值:条件, 格式化数据
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
python re正则表达式模块(Regular Expression)
Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析、复杂字符串分析和信息提取时是一个非常有用的工具.2014-07-07
利用Django框架中select_related和prefetch_related函数对数据库查询优化
这篇文章主要介绍了利用Python的Django框架中select_related和prefetch_related函数对数据库查询的优化的一个实践例子,展示如何在实际中利用这两个函数减少对数据库的查询次数,需要的朋友可以参考下2015-04-04
Python爬虫+tkinter界面实现历史天气查询的思路详解
这篇文章主要介绍了Python爬虫+tkinter界面实现历史天气查询的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02
解决pycharm下os.system执行命令返回有中文乱码的问题
今天小编就为大家分享一篇解决pycharm下os.system执行命令返回有中文乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-07-07
Django模板导入母版继承和自定义返回Html片段过程解析
这篇文章主要介绍了Django模板导入母版继承和自定义返回Html片段过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-09-09


最新评论