在字典中将元组作为值处理(在列表理解中)

2024-04-19 09:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本这样的字典:

>>> pprint.pprint(d)
{'a': ('abc', 'pqr', 'xyz'),
 'b': ('abc', 'lmn', 'uvw'),
 'c': ('efg', 'xxx', 'yyy')}

现在,给定一个变量x,我希望能够列出dict中的所有键,其中元组中的第一个元素等于x。因此我要这样做(在Python2.6上):

>>> [ k for k, v in d if v[0] == x ]

我得到了

Traceback (most recent call last):
  File "", line 1, in 
ValueError: need more than 1 value to unpack

我怎样才能纠正这个问题?你知道吗


Tags: in元素for字典dictxxxpprint元组
1条回答
网友
1楼 · 发布于 2024-04-19 09:14:36

你就快到了,只是忘记了.items()和dict:

>>> d = {'a': ('abc', 'pqr', 'xyz'),
...  'b': ('abc', 'lmn', 'uvw'),
...  'c': ('efg', 'xxx', 'yyy')}
>>> x = 'abc'
>>> [ k for k, v in d.items() if v[0] == x ]
['a', 'b']

如果不想使用.items,也可以对键本身进行迭代:

>>> [ k for k in d if d[k][0] == x ]
['a', 'b']

相关问题 更多 >