【发布时间】:2018-09-08 09:28:01
【问题描述】:
我有一本字典:
d = {'a':1, 'b':2, 'c':3, 'd':4}
然后我有一个键列表:
l = ['a', 'b', 'z']
我想要的结果是:
[1, 2, None]
到目前为止,我正在做的是:
[d.get(k) for k in l]
有没有更快的方法?也许没有for?
【问题讨论】:
-
list(map(d.get, l))可能会稍微快一些。但在这个级别的微优化中,我建议是否将其转移到 C 或其他较低级别的语言上。 -
[d.get(k) for k in l]是一种完美的方式。你到底对什么不满意?表现?可读性?简洁? -
很遗憾
operator.itemgetter总是提出KeyError而不是允许未定义键的默认值;否则你可以使用itemgetter(*l)(d)。
标签: python performance dictionary key-value