我有很多的名单格式如下:创建字典从列表蟒蛇
['1', 'O1', '', '', '', '0.0000', '0.0000', '', '']
['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']
我需要创建一个字典,键在列表中的第一个元素和值的完整列表。没有任何键正在重复。 这样做的最好方法是什么?
我有很多的名单格式如下:创建字典从列表蟒蛇
['1', 'O1', '', '', '', '0.0000', '0.0000', '', '']
['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']
我需要创建一个字典,键在列表中的第一个元素和值的完整列表。没有任何键正在重复。 这样做的最好方法是什么?
把所有的名单在另一个列表,这样做:
my_dict = {}
for list in lists:
my_dict[list[0]] = list[:]
这基本上得到的第一个元素,并把它作为my_dict
的关键,并把列表作为值。
>>> lists = [['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''],
['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''],
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']]
>>> {x[0]: x for x in lists}
{'1': ['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], '3': ['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''], '2': ['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']}
如果你的索引是连续整数,你可以使用一个列表,而不是一个字典的:
lst = [None]+[x[1:] for x in sorted(lists)]
只使用它,如果它真的适合你的问题,但。
非常感谢:)真的帮助 –
但是,如果我需要为每个列表制作单独的字典并且我不想合并列表,我该怎么办? –
@wannabe_geek你必须保持你的名单莫名其妙。将它们全部放在一个列表中是最简单的方法。如果你愿意,你可以使用链表等其他东西。您的输出遵循相同的规则。你必须把它保存在某个地方。字典是最好的选择。 – AliBZ