Python在列表,字典,集合中根据条件筛选数据

# 随机生成10个数区间(-10, 10)
from random import randint

data = [randint(-10, 10) for _ in xrange(10)]
1.操作列表
  • 1.使用filter函数
"""
 filter(过滤函数,列表)
 lambda x:   匿名函数, 参数(依次迭代列表中的每一个参数)
 返回Boolean值
 x >= 0 : 为过滤条件
"""
 filter(lambda x: x >= 0,data)
  • 2.使用列表解析(更快)
[x for x in data if x >= 0]
2.操作字典
"""
考试分数 60-100, 得到20个人的成绩 (1-20)
找高于90的
"""
d = {x : randint(60,100) for x in xrange(1,21)}
print d
输出d:
{1: 91, 2: 62, 3: 76, 4: 68, 5: 85, 6: 100, 7: 82, 8: 89, 9: 92, 10: 93, 11: 61, 12: 89, 13: 68, 14: 98, 15: 86, 16: 82, 17: 66, 18: 75, 19: 89, 20: 73}
进行迭代:
{k: v for k,v in d.iteritems() if v > 90}
#  前面部分和字典一样 k: v

注:

{for x in d}: 这样只能迭代出键

{for x in d.iteritems()}: 值

3.操作集合
"""
# 集合类似字典解析
# 区别就是没有 :
"""
s = set(data)

{x for x in s if x - 3 > 0}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值