gpt4 book ai didi

python - Python 中 3 个不同长度列表的嵌套字典

转载 作者:行者123 更新时间:2023-12-01 08:57:27 26 4
gpt4 key购买 nike

我想用三个长度不等的不同列表创建一个嵌套字典。

这些是列表。

jaren = ['2017', '2018']
wedstrijden = ['NED', 'GER', 'GBR', 'USA']
eventresults = [[1, 2, 3, 4], [1,2], [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9,10], [3,2,1], [6,5,4,3,2,1], [4,5,6,3], [1,2,3,4,5,6,7]]

输出应该是这样的:

main_dict = {'2017': {'NED':[1, 2, 3, 4], 'GER':[1,2], 'GBR':[1,2,3,4,5,6], 'USA':[1,2,3,4,5,6,7,8,9,10]},{'2018': {'NED':[3, 2, 1], 'GER':[6,5,4,3,2,1], 'GBR':[4,5,6,3], 'USA':[1,2,3,4,5,6,7]}}

我当前的输出是:

main_dict = {'2017': {'NED':[1, 2, 3, 4], 'GER':[1, 2, 3, 4], 'GBR':[1, 2, 3, 4], 'USA':[1, 2, 3, 4]},{'2018': {'NED':[1,2], 'GER':[1,2], 'GBR':[1,2], 'USA':[1,2]}}

我使用这段代码:

main_dict = {}
for jaar, eventresult in zip(jaren, eventresults):
main_dict[jaar] = {}
for wedstrijd in wedstrijden:
main_dict[jaar][wedstrijd] = eventresult

实际上我的列表 eventresults 是一个 DataFrame 列表,而不是带有整数的列表。

有人可以帮我编写代码吗?

最佳答案

这很容易通过 zip 解决使用 iterator ping wedstrijden关于事件结果:

event_itr = iter(eventresults)
result = {}
for year in jaren:
result[year] = dict(zip(wedstrijden, event_itr))

# result:
# {'2017': {'NED': [1, 2, 3, 4], 'GER': [1, 2], 'GBR': [1, 2, 3, 4, 5, 6], 'USA': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]},
# '2018': {'NED': [3, 2, 1], 'GER': [6, 5, 4, 3, 2, 1], 'GBR': [4, 5, 6, 3], 'USA': [1, 2, 3, 4, 5, 6, 7]}}

关于python - Python 中 3 个不同长度列表的嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698078/

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