gpt4 book ai didi

python - 应用函数后从两个列表创建字典

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:44 25 4
gpt4 key购买 nike

我有两个元组列表

keys = [(0,1), (2,1)]
values = [('a','b'), ('c','d')]

我想制作一个字典 dict ,它将对每个函数应用一个函数 f1

dict.keys[i] = keys[i][0], keys[i][i]: f1(keys[i][0],keys[i][1])

对于字典的值,我想是元组

dict.values[i] = (f2(values[i][0]), f2(values[i][1]))

以 pythonic 方式一次性完成该操作的最有效方法是什么?

最佳答案

您可以使用 dictionary comprehension 来做到这一点.

out = {f1(keys[i][0], keys[i][1]):(f2(values[i][0]),f2(values[i][1])) for i in range(len(keys))}

如果你想避免使用 range,你也可以使用 zip 来完成同样的事情:

out = {f1(M[0],M[1]):(f2(N[0]), f2(N[1])) for M,N in zip(keys, values)}

甚至更简短

out = {f1(*M):tuple(map(f2, N)) for M,N in zip(keys, values)}

如果您使用的是 Python 2.6 或更早版本(在字典推导之前),您始终可以使用列表推导并显式转换为字典。

out = dict([(f1(*M), tuple(map(f2, N))) for M,N in zip(keys, values)])

关于python - 应用函数后从两个列表创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143281/

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