簡體   English   中英

從列表列表到字典

[英]From a list of lists to a dictionary

我有一個具有非常特定結構的列表列表,它看起來如下所示:

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的一個好鍵:

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方式來做到這一點。

謝謝!

使用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]}

我認為,這是使用字典理解的最Pythonic解決方案:

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

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

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

像這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM