我是靠谱客的博主 沉静鞋垫,最近开发中收集的这篇文章主要介绍python列表大于60_Python强化训练笔记(一)——在列表,字典,集合中筛选数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

列表,字典,集合中根据条件筛选数据,如下所示

列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数

字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对

集合:{2,3,8,6,7,5} 找出所有被3整除的数

列表

>>> from random importrandint>>> data = [randint(-10,10) for x in xrange(10)]>>>data[-1, 8, -9, 9, 10, -2, 6, -8, -2, 10]

对于列表来说,想要对其中的数值进行筛选,最先想到的应该是利用遍历:

>>> res =[]>>> for x indata:

>>>if x >=0:

>>> res.apend(x)

>>> res

[8,9,10,6,10]

较为常用的方法还有使用过滤函数filter

>>> filter(lambda x: x >= 0, data)

[8,9,10,6,10]

也可以使用列表生成式

>>> [x for x in data if x >=0]

[8, 9, 10, 6, 10]

对比这三种方法,开发中通常使用第三种,列表生成式,因为它的运行效率要比过滤函数filter高,而对于第一种则不会去使用。

字典

假如现有20名同学,他们的序号和成绩以对应形式的字典给出,如下所示:

>>> students = {x: randint(30, 100) for x in xrange(1, 21)}>>>students

{1: 31, 2: 37, 3: 34, 4: 77, 5: 69, 6: 68, 7: 84, 8: 83, 9: 49, 10: 60, 11: 39,12: 96, 13: 79, 14: 80, 15: 90, 16: 75, 17: 38, 18: 61, 19: 97, 20: 66}

现在要筛选出成绩优秀(即80分以上)的同学。

使用字典解析:

>>> {k:v for k,v in students.iteritems() if v >= 80}

{7: 84, 8: 83, 12: 96, 14: 80, 15: 90, 19: 97}

这个过程中,使用了students.iteritems()而不只是students,这是由于如果只遍历students则只会得到键,而不会得到值。

集合

集合解析:

>>>data

[-1, 8, -9, 9, 10, -2, 6, -8, -2, 10]>>> s =set(data)>>>s

set([6, 8, 9, 10, -1, -9, -8, -2])>>> {x for x in s if x % 3 ==0}

set([9, 6, -9])

最后

以上就是沉静鞋垫为你收集整理的python列表大于60_Python强化训练笔记(一)——在列表,字典,集合中筛选数据的全部内容,希望文章能够帮你解决python列表大于60_Python强化训练笔记(一)——在列表,字典,集合中筛选数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部