【发布时间】:2015-05-26 20:02:22
【问题描述】:
我有一本字典,并且想将其中的一部分传递给一个函数,该部分由一个键列表(或元组)给出。像这样:
# the dictionary
d = {1:2, 3:4, 5:6, 7:8}
# the subset of keys I'm interested in
l = (1,5)
现在,理想情况下我希望能够做到这一点:
>>> d[l]
{1:2, 5:6}
...但这不起作用,因为它会寻找一个名为(1,5) 的键。
而d[1,5] 甚至不是有效的 Python(尽管它看起来很方便)。
我知道我可以做到:
>>> dict([(key, value) for key,value in d.iteritems() if key in l])
{1: 2, 5: 6}
或者这个:
>>> dict([(key, d[key]) for key in l])
哪个更紧凑 ...但我觉得必须有一种“更好”的方式来做到这一点。我错过了更优雅的解决方案吗?
(我使用的是 Python 2.7)
【问题讨论】:
-
IMO 的理想解决方案是
d[*l],但这当然行不通。
标签: python dictionary