7

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

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

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

4

3 回答 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', '', '']}
于 2013-06-04T23:57:19.613 回答
5

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

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

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

于 2013-06-04T23:57:34.913 回答
0

如果您的索引是连续整数,您可以使用列表而不是字典:

lst = [None]+[x[1:] for x in sorted(lists)]

不过,仅当它确实适合您的问题时才使用它。

于 2013-06-05T00:06:28.540 回答