python字典读取 传值很慢_Python字典理解很慢

使用set:

>>> l1 = ['cat', 'dog', 'mouse', 'horse', 'elephant',

'zebra', 'lion', 'snake', 'fly']

>>> d1 = {'1':['dog', 'mouse', 'horse','orange', 'lemon'],

'2':['apple', 'pear','cat', 'mouse', 'horse'],

'3':['kiwi', 'lime','cat', 'dog', 'mouse'],

'4':['carrot','potato','cat', 'dog', 'horse'],

'5':['chair', 'table', 'knife']}

>>> l1_set = set(l1)

>>> d2 = dict((k, set(d1[k]) & l1_set) for k in d1.keys())

>>> d2

{'1': set(['horse', 'mouse', 'dog']), '3': set(['mouse', 'dog', 'cat']), '2': set(['horse', 'mouse', 'cat']), '5': set([]), '4': set(['horse', 'dog', 'cat'])}

>>> d2 = dict((k, v) for k,v in d2.iteritems() if v)

>>> d2

{'1': set(['horse', 'mouse', 'dog']), '3': set(['mouse', 'dog', 'cat']), '2': set(['horse', 'mouse', 'cat']), '4': set(['horse', 'dog', 'cat'])}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值