如何使用字典键比较列表值并使用python创建新字典

如何使用字典键比较列表值并使用python创建新字典,第1张

如何使用字典键比较列表值并使用python创建新字典

治疗

lis
为一组,而不是,所以你可以使用字典视图和一个交叉点

# python 2.7:n = {k: d[k] for k in d.viewkeys() & set(lis)}# python 3:n = {k: d[k] for k in d.keys() & set(lis)}

或者,您可以使用简单的dict理解以及

in
针对的测试
d

# python 2.6 or older:n = dict((k, d[k]) for k in lis if k in d)# python 2.7 and up:n = {k: d[k] for k in lis if k in d}

这假定不是in

lis
中的所有值都将在in中
d
if k in d
如果它们总是存在,则可以放弃该测试。

对于您的特定情况,第二种形式要快得多:

>>> from timeit import timeit>>> timeit("{k: d[k] for k in d.viewkeys() & s}", 'from __main__ import d, lis; s=set(lis)')2.156520128250122>>> timeit("{k: d[k] for k in lis if k in d}", 'from __main__ import d, lis')0.9401540756225586


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5667035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存