首页 > 解决方案 > 如何将许多大小未知的列表放入字典中

问题描述

我正在处理许多表,这些表的行数不一样。使用 for 循环,我可以浏览这些表的内容并将其放入两个列表中。对于 for 循环的每次迭代,这些列表的内容将根据这些表的内容进行更改。之后,我希望将每次迭代的这些列表的内容放入一个列表中。

例如:

我可以手动将下面两个列表的内容放入字典中,但这应该没问题,如果我有两个已知维度的列表(行数已知),但如果我有两个未知行数的列表,这是行不通的。

表格1

player1 = ['1','2','3']

player2 = ['4','5','6']


d ={}

d['players'] = {}

d['players']['player1'] = []

d['players']['player1'].append(T1[0])

d['players']['player1'].append(T2[0])

d['players']['player2'] = []

d['players']['player2'].append(T1[1])

d['players']['player2'].append(T2[1])

d['players']['player3'] = []

d['players']['player3'].append(T1[2])

d['players']['player3'].append(T2[2])

print(d)

### {'players': {'player1': ['1', '4'], 'player2': ['2', '5'], 'player3': ['3', '6']}}

如果我有来自其他表的其他两个列表,其中行数未知,并且想要添加到另一个字典,其中字典的值(元素)将在 for 循环的每次迭代中发生变化,我该怎么办?

例如:

表:2

player1 = ['7','8','9',.....]

player2 = ['1','4','7',.....]

字典应该是:

d = {'players': {'player1': ['7', '1'], 'player2': ['8', '4'], 'player3': ['9', '7'], .......}}

最后,我想将上面这两个字典添加到列表中

List = [{'players': {'player1': ['1', '4'], 'player2': ['2', '5'], 'player3': ['3', '6']}}, {'players': {'player1': ['7', '1'], 'player2': ['8', '4'], 'player3': ['9', '7'], .......}}]

标签: pythonlistdictionary

解决方案


您可以使用如下代码中的 for 循环来执行此操作:

d = {'players':{}}

for i in range(len(player1)): # Assuming length if player1 is same as player2
   player = 'player'+str(i+1) #String Concat 
   d['players'][player] = [player1[i],player2[I]]

要将它们存储在列表中,您可以将dusing替换d1为第一个表和d2第二个表,如下所示

final_list = [d1,d2]

推荐阅读