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

Python中3个不同长度列表的嵌套字典,python,list,dictionary,Python,List,Dictionary,我想用三个长度不等的不同列表制作一个嵌套字典 这些是清单 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 = {'2

我想用三个长度不等的不同列表制作一个嵌套字典

这些是清单

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
实际上,我的list eventresults是一个数据帧列表,而不是带有整数的列表

有人能给我一些代码方面的帮助吗?

通过ping
wedstrijden
和over
eventresults
很容易解决这个问题:

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列表对象?我想按年份和事件对数据帧(划行结果)进行排序。每个数据帧都是特定年份赛船会上的特定事件。每个赛船会都有不同数量的事件、参与者和比赛。还有理解
event_itr=。。。;{year:dict(zip(…,event_itr)for year in jaren}
。谢谢,它看起来很简单,也很简单。我对python不太熟悉。非常感谢!