tre*_*der 2 python list-comprehension
我有一个这样的字典:
>>> pprint.pprint(d)
{'a': ('abc', 'pqr', 'xyz'),
'b': ('abc', 'lmn', 'uvw'),
'c': ('efg', 'xxx', 'yyy')}
现在,给定一个变量x,我希望能够列出元组中第一个元素等于的dict中的所有键x.因此我这样做(在Python 2.6上):
>>> [ k for k, v in d if v[0] == x ]
Run Code Online (Sandbox Code Playgroud)
我明白了
Traceback (most recent call last): File "", line 1, in ValueError: need more than 1 value to unpack
我怎么能纠正这个?
你几乎就在那里,只是忘了.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']
Run Code Online (Sandbox Code Playgroud)
如果您不想使用.items,您也可以迭代密钥本身:
>>> [ k for k in d if d[k][0] == x ]
['a', 'b']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |