Python 访问字典值中的嵌套元组

Python 访问字典值中的嵌套元组,python,dictionary,Python,Dictionary,在与此主题相关的许多现有问题中找不到答案后,我发布了此问题。 我有一本和这本相似的字典: foo={'a':[(1,0.5)、(2,0.3)],'b':[(3,0.4)、(4,0.1)] 并希望访问嵌套元组的项,以便从中创建以下字典: foo={'a':[1,2],'b':[3,4]} 我该怎么做呢,最好是以一种肾盂式的方式 {x: map(lambda z: z[0], y) for x, y in foo.iteritems()} 使用听写理解: In [214]: {key:list

在与此主题相关的许多现有问题中找不到答案后,我发布了此问题。
我有一本和这本相似的字典:

foo={'a':[(1,0.5)、(2,0.3)],'b':[(3,0.4)、(4,0.1)]

并希望访问嵌套元组的项,以便从中创建以下字典:

foo={'a':[1,2],'b':[3,4]}

我该怎么做呢,最好是以一种肾盂式的方式

{x: map(lambda z: z[0], y) for x, y in foo.iteritems()}

使用听写理解:

In [214]: {key:list(map(lambda x: x[0], foo[key])) for key in foo}
Out[214]: {'a': [1, 2], 'b': [3, 4]}
这使得:

{'a': [1, 2], 'b': [3, 4]}
您可以从
集合
模块执行此操作:

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d = defaultdict(list)
>>> for k in foo:
        for v in foo[k]:
            d[k].append(v[0])
>>> d
defaultdict(<class 'list'>, {'a': [1, 2], 'b': [3, 4]})
>>> d['a']
[1, 2]
>>从集合导入defaultdict
>>>d=默认DICT(列表)
>>>d=默认DICT(列表)
>>>对于金富国:
对于v in foo[k]:
d[k]。追加(v[0])
>>>d
defaultdict(,{'a':[1,2],'b':[3,4]})
>>>d['a']
[1, 2]

我认为这两种解决方案最容易阅读:

>>> from operator import itemgetter
>>> {k:map(itemgetter(0), foo[k]) for k in foo}
{'a': [1, 2], 'b': [3, 4]}
或少进口:

>>> {k:[x[0] for x in foo[k]] for k in foo}
{'a': [1, 2], 'b': [3, 4]}

所需结果的语法无效。请编辑您的问题。没问题,您的任何答案都有帮助吗?是的,我接受了您的答案。在python3中,这将是:{x:list(map(lambda z:z[0],y])for x,y In foo.items()}
>>> {k:[x[0] for x in foo[k]] for k in foo}
{'a': [1, 2], 'b': [3, 4]}