gpt4 book ai didi

python - 使 map() 返回一个字典

转载 作者:太空狗 更新时间:2023-10-29 18:21:37 25 4
gpt4 key购买 nike

我有以下功能:

def heading_positions(self):
return map(
lambda h:
{'{t}.{c}'.format(t=h.table_name,c=h.column_name) : h.position },
self.heading_set.all()
)

它给我这样的输出:

[{'customer.customer_number': 0L}, {'customer.name': 2L}, ... ]

我更喜欢像这样的单个字典:

{'customer.customer_number': 0L, 'customer.name': 2L, ...

有没有办法让 map(或类似的东西)只返回一个字典而不是一个字典数组?

最佳答案

是的。基本问题是您不是从单条目 dict 中创建字典,而是从长度为两个的序列 ​​(key, value) 中创建字典。

因此,与其使用该函数创建一个独立的单项 dict,不如创建一个元组,然后您可以使用 dict() 构造函数:

dict(map(lambda h: ('{t}.{c}'.format(t=h.table_name, c=h.column_name), h.position), 
self.heading_set.all()))

或者直接在 dict 构造函数中使用生成器或列表推导式:

dict(('{t}.{c}'.format(t=h.table_name, c=h.column_name), h.position) 
for h in self.heading_set.all())

或者,在最新版本(2.7、3.1)上直接进行字典推导:

{'{t}.{c}'.format(t=h.table_name : c=h.column_name), h.position) 
for h in self.heading_set.all()}

关于python - 使 map() 返回一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4863406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com