如何访问map lambda函数中两个键的值

问题描述 投票:0回答:1

我有一个如下所示的字典列表:

    sample = [{'By': {'email': '[email protected]', 'name': 'xyzzy', 'id': '5859'}},{'By': {'email': '[email protected]', 'name': 'abccb', 'id': '9843'}},
{'By': {'email': '[email protected]', 'name': 'xyzzy', 'id': '5859'}}]

由此,我尝试访问键“name”和“id”并将不同的值写入字典中。
下面是单独返回 id :

print(set(map(lambda x: x['By']['id'], sample)))

输出:{'9843','5859'}

所需输出:{"9843":"abccb", "5859":"xyzzy"}

我尝试使用 f 字符串将“id”和“name”值连接起来,中间用冒号 (:) 表示,为列表中的每个字典项提供“id:name”格式。

set(map(lambda x: f"{x['By']['id']}:{x['By']['name']}", sample))

输出:{'9843:abccb','5859:xyzzy'}

是否可以访问map lambda函数中两个键的值?谢谢你。

python lambda
1个回答
0
投票

您想要的是

dict
,而不是
set
。您可以在
lambda
中获取这两个值并将其打包到
tuple

print(dict(map(lambda x: (x['By']['id'], x['By']['name']), sample)))
© www.soinside.com 2019 - 2024. All rights reserved.