簡體   English   中英

將列表轉換為字典

[英]Converting List to Dict

當我有一個格式為

list1 = [[James,24],[Ryan,21],[Tim,32]...etc] 

我可以用

dic1 =dict(list1)

但是現在可以說我有多個值,例如

list1 = [[James,24,Canada,Blue,Tall],[Ryan,21,U.S.,Green,Short
[Tim,32,Mexico,Yellow,Average]...etc]

我不知道如何創建一個 dict 以便它將名字顯示為鍵,將以下值顯示為值。

提前致謝

您可以使用dict 理解和切片:

>>> list1 = [['James','24','Canada','Blue','Tall'],['Ryan','21','U.S.','Green','Short']]
>>> {i[0]:i[1:] for i in list1}
{'James': ['24', 'Canada', 'Blue', 'Tall'], 'Ryan': ['21', 'U.S.', 'Green', 'Short']}

在python 3中,您可以使用更優雅的方式進行解包操作:

>>> {i:j for i,*j in list1}
{'James': ['24', 'Canada', 'Blue', 'Tall'], 'Ryan': ['21', 'U.S.', 'Green', 'Short']}

遍歷列表中的條目並將它們添加到字典中:

for entry in list:
    dict[entry[0]]=entry[1:]

使用星型拆包。 如果鍵不存在,插入鍵,空值。 Extend 不需要任何元素。 它適用於空列表。

s =  [['James','24','Canada','Blue','Tall'],['Ryan','21','U.S.','Green','Short']]

output = {}

for k, *v in s:
    if v:
        output.setdefault(k, []).extend(v)
    else:
        output[k] = None
       
print(output ) 
{'James': ['24', 'Canada', 'Blue', 'Tall'], 'Ryan': ['21', 'U.S.', 'Green', 'Short']}

[Program finished] 

暫無
暫無

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

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