gpt4 book ai didi

Python:将一个列表除以另一个列表的长度,并用该除法创建一个字典

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:09 24 4
gpt4 key购买 nike

我有两个动态变化的列表,我需要最终得到一个字典,当列表的长度发生变化时将列表平均划分并将结果放入字典中。

Examples:a = ['a','b','c']b = ['x','y','z','l','m','n','p','q']Result:c = { a:['x','y','z'], b:['l','m','n'], c:['p','q'] }a = ['a','b']b = ['x','y','z','l','m','n','p','q']Result:c = { a:['x','y','z','l'], b:['m','n','p','q'] }a = ['a','b','c','d']b = ['x','y','z','l','m','n','p','q']Result:c = { a:['x','y'], b:['z','l'], c:['m','n'], d:['p','q'] }a = ['a','b','c']b = ['x','y','z','l','m','n','p','q','r','t','s']Result:c = { a:['x','y','z','l'], b:['m','n','p','q'], c:['r','t','s'] }

最佳答案

您还可以创建 block 并将它们映射到 a 中的元素:

a = ['a','b','c']
b = ['x','y','z','l','m','n','p','q','r','t','s']

import math

# find the size
size = math.ceil(len(b)/len(a))

# creating list of chunks of size
chunks = [b[i:i + size] for i in range(0, len(b), size)]

# matching chunks with elements in 'a'
c = {a[i]:chunks[i] for i in range(len(a))}

或者,上述步骤可以使用dictionary comprehension来完成:

c = {a[index]:item for index, item in enumerate(b[i:i + size] 
for i in range(0, len(b), size))}
print(c)

输出:

{'a': ['x', 'y', 'z', 'l'], 'b': ['m', 'n', 'p', 'q'], 'c': ['r', 't', 's']}

关于Python:将一个列表除以另一个列表的长度,并用该除法创建一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704280/

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