如果根据字典来筛选数据(2)

  • 筛选出字典{‘Jack’:79, 'Jim':88, 'Lucy':92, ...}中值高于90的键值对;

创建一个随机的字典:

Python
In [93]: s = {x:randint(10,100) for x in range(20)} In [94]: s Out[94]: {0: 78, 1: 95, 2: 74, 3: 52, 4: 78, 5: 49, 6: 85, 7: 46, 8: 94, 9: 92, 10: 67, 11: 74, 12: 13, 13: 89, 14: 58, 15: 70, 16: 38, 17: 57, 18: 96, 19: 81}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
In [ 93 ] : s = { x : randint ( 10 , 100 ) for x in range ( 20 ) }
 
In [ 94 ] : s
Out [ 94 ] :
{ 0 : 78 ,
1 : 95 ,
2 : 74 ,
3 : 52 ,
4 : 78 ,
5 : 49 ,
6 : 85 ,
7 : 46 ,
8 : 94 ,
9 : 92 ,
10 : 67 ,
11 : 74 ,
12 : 13 ,
13 : 89 ,
14 : 58 ,
15 : 70 ,
16 : 38 ,
17 : 57 ,
18 : 96 ,
19 : 81 }

要想过滤出字典中特定条件的值必须遍历

Python
In [96]: for k,v in s.items(): ...: print(k, ":", v) ...: ...: 0 : 78 1 : 95 2 : 74 3 : 52 4 : 78 5 : 49 6 : 85 7 : 46 8 : 94 9 : 92 10 : 67 11 : 74 12 : 13 13 : 89 14 : 58 15 : 70 16 : 38 17 : 57 18 : 96 19 : 81
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
In [ 96 ] : for k , v in s . items ( ) :
     . . . :      print ( k , ":" , v )
     . . . :
     . . . :
0 : 78
1 : 95
2 : 74
3 : 52
4 : 78
 
 
5 : 49
6 : 85
7 : 46
8 : 94
9 : 92
10 : 67
11 : 74
12 : 13
13 : 89
14 : 58
15 : 70
16 : 38
17 : 57
18 : 96
19 : 81

# 根据列表的推导式,进行过滤

Python
In [98]: s1 = {k:v for k,v in s.items() if v >60} In [99]: s1 Out[99]: {0: 78, 1: 95, 2: 74, 4: 78, 6: 85, 8: 94, 9: 92, 10: 67, 11: 74, 13: 89, 15: 70, 18: 96, 19: 81}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
In [ 98 ] : s1 = { k : v for k , v in s . items ( ) if v > 60 }
 
In [ 99 ] : s1
Out [ 99 ] :
{ 0 : 78 ,
1 : 95 ,
2 : 74 ,
4 : 78 ,
6 : 85 ,
8 : 94 ,
9 : 92 ,
10 : 67 ,
11 : 74 ,
13 : 89 ,
15 : 70 ,
18 : 96 ,
19 : 81 }



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值