gpt4 book ai didi

python - 动态连接字典

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

a="90342"

# this used to generate a dict of each char in a and it indexs
modchar=[{i:a.index(i)} for i in a ]

#modchar=[{'9': 0}, {'0': 1}, {'3': 2}, {'4': 3}, {'2': 4}]


# below produce combination now this combination
def combination(x,n):
return list(itertools.combinations(x,n))

combination(modchar,1)

#output [({'9': 0},), ({'0': 1},), ({'3': 2},), ({'4': 3},), ({'2': 4},)]

combination(modchar,2)

#output [({'9': 0}, {'0': 1}), ({'9': 0}, {'3': 2}), ({'9': 0}, {'4': 3}), ({'9': 0}, {'2': 4}), ({'0': 1}, {'3': 2}), ({'0': 1}, {'4': 3}), ({'0': 1}, {'2': 4}), ({'3': 2}, {'4': 3}), ({'3': 2}, {'2': 4}), ({'4': 3}, {'2': 4})]

combination(modchar,3)
#output [({'9': 0}, {'0': 1}, {'3': 2}), ({'9': 0}, {'0': 1}, {'4': 3}), ({'9': 0}, {'0': 1}, {'2': 4}), ({'9': 0}, {'3': 2}, {'4': 3}),....]

如果你查看列表中的每个结果,第一个元素是字典的元组。我想要做的是将元组内的字典组合起来并将其作为单个字典

我已经尝试过

map(lambda x:dict(x[0],**x[1]),list(itertools.combinations(x,n))) 

以上仅适用于两个字典的元组。

我如何动态生成代码,它应该组合所有字典并生成单个字典,无论combination(x,n)中的n值如何

预期输出:n=2

[({'9': 0,'0': 1}) ....]

预期输出:n=3

[({'9': 0,'0': 1,'3': 2})..]

最佳答案

这是一种方法:

combos = combinations(modchar,3)

def combineDictTuple(dt):
d = {}
for item in dt:
d.update(item)
return d

newCombos = [combineDictTuple(dt) for dt in combos]

# OUTPUT: [{'9': 0, '0': 1, '3': 2}, {'9': 0, '0': 1, '4': 3}, {'9': 0, '0': 1, '2': 4}, {'9': 0, '3': 2, '4': 3}, {'9': 0, '3': 2, '2': 4}, {'9': 0, '2': 4, '4': 3}, {'0': 1, '3': 2, '4': 3}, {'0': 1, '3': 2, '2': 4}, {'0': 1, '2': 4, '4': 3}, {'3': 2, '2': 4, '4': 3}]

关于python - 动态连接字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24185486/

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