我有一個列表,我想要轉換爲4值字典,其中每個列表中的第一個值是關鍵字的列表。因此,例如,名單將是:如何將列表轉換爲多值字典
[['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
,我想這是
{"267-10-7633":[66,85,74,0], "709-40-8165", [71,96,34,0] }
我有一個列表,我想要轉換爲4值字典,其中每個列表中的第一個值是關鍵字的列表。因此,例如,名單將是:如何將列表轉換爲多值字典
[['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
,我想這是
{"267-10-7633":[66,85,74,0], "709-40-8165", [71,96,34,0] }
您可以使用字典解析:
lst = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
{k: v for k, *v in lst}
# {'267-10-7633': ['66', '85', '74', 0], '709-40-8165': ['71', '96', '34', 0]}
如果你是在python2 ,似乎你不能使用*v
來解壓縮多個元素:
{x[0]: x[1:] for x in lst}
# {'267-10-7633': ['66', '85', '74', 0], '709-40-8165': ['71', '96', '34', 0]}
這裏沒有照顧到類型轉換。我想你可以參考其他的答案,如何做到這一點。
一個簡單而直接的解決方案。
lst = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
# create an empty dict
new_dict = {}
# iterate through the list
for item in lst:
# key is first element in the inner list
# value is second element in the inner list
key = item[0]
value = item[1:]
new_dict[key] = value
print new_dict
列表解析適合在這種情況下
{element[0]: [int(x) for x in element[1:]] for element in\
[['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]}
一種簡單的方法:
your_list = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
dictionary = {}
for item in your_list:
dictionary[item[0]] = [int(i) for i in item[1:]]
print(dictionary)
list
隨着和dict
理解:
dictionary = {item[0]: [int(i) for i in item[1:]] for item in your_list}
print(dictionary)
在這兩種情況下,輸出:
{'267-10-7633': [66, 85, 74, 0], '709-40-8165': [71, 96, 34, 0]}
ll = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
mydict = {}
for item in ll:
key,*values = item
mydict[key] = values
print(mydict)
根據這個問題,我想你應該將字符串轉換爲整數,在列表中。 Py2 ver:'{x [0]:map(int,x [1:])for x in lst}'。 – JRodDynamite
@JRodDynamite這會打開另一個Py2與Py3的問題,你需要'list(map(int,x [1:]))'。 – schwobaseggl
@JRodDynamite我認爲你的評論是一個很好的補充,在python 3的情況下:'{k:list(map(int,v))for k,* v in lst}' – Psidom