从一个列表的列表到字典

6

我有一个具有非常特定结构的列表,它看起来像下面这样:

lol = [['geo','DS_11',45.3,90.1,10.2],['geo','DS_12',5.3,0.1,0.2],['mao','DS_14',12.3,90.1,1],...]

我想把这个 lol (列表的列表) 转换成以下形式的字典(注意lol中每个列表的第二个元素应该是唯一的,因此是我的字典的一个好键):

dict_lol = {'DS_11': ['geo','DS_11',45.3,90.1,10.2], 'DS_12':['geo','DS_12',5.3,0.1,0.2], 'DS_14':['mao','DS_14',12.3,90.1,1],...}

我可以使用for循环完成,但我正在寻找一种更优雅的Pythonic方法来完成它。
谢谢!
3个回答

6

使用字典推导式,在Python 2.7及以上版本中可用

In [93]: {x[1]:x for x in lol}
Out[93]: 
{'DS_11': ['geo', 'DS_11', 45.3, 90.1, 10.2],
 'DS_12': ['geo', 'DS_12', 5.3, 0.1, 0.2],
 'DS_14': ['mao', 'DS_14', 12.3, 90.1, 1]}

5

我认为这是最具Python风格的解决方案,使用字典推导式

dict_lol = {item[1]: item for item in lol}

如果不存在(例如在Python<2.7中),您可以使用以下解决方案:

dict_lol = dict((item[1], item) for item in lol)

2

像这样:

{l[1]:l for l in lol}

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