用Python从列表创建字典

7

我有很多这种格式的列表:

['1', 'O1', '', '', '', '0.0000', '0.0000', '', '']
['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']

我需要创建一个字典,以列表中的第一个元素为键,整个列表为值。没有重复的键。 最好的方法是什么?

3个回答

9
>>> 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', '', '']}

但是如果我需要为每个列表创建一个单独的字典,而且我不想合并这些列表,该怎么办? - wannabe_geek
@wannabe_geek,你必须以某种方式保存你的列表。把它们全部放在一个列表中是最简单的方法。如果你想的话,也可以使用其他东西,比如链表。你的输出遵循相同的规则。你必须将它保存在某个地方。字典是最好的选择。 - AliBZ

5

将所有列表放入另一个列表中,然后执行以下操作:

my_dict = {}
for list in lists:
  my_dict[list[0]] = list[:]

这基本上是获取第一个元素并将其作为键放入my_dict中,并将列表作为值放入其中。

0
如果你的索引是连续整数,你可以使用列表而不是字典:
lst = [None]+[x[1:] for x in sorted(lists)]

只有在它真正适合您的问题时才使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接