[英]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.