我試圖合併以下列表字典如下:合併多個列表分爲單辭典蟒蛇
resultant_dict = {}
key = [101, 102, 103]
values1 = [1,2,3]
values2 = [4,5,6]
values3 = [7,8,9]
輸出應該是:
output = {101: '147', 102: '258', 103: '369'}
值是連擊對方。有沒有一種有效的方法來做到這一點?
在此先感謝!
我試圖合併以下列表字典如下:合併多個列表分爲單辭典蟒蛇
resultant_dict = {}
key = [101, 102, 103]
values1 = [1,2,3]
values2 = [4,5,6]
values3 = [7,8,9]
輸出應該是:
output = {101: '147', 102: '258', 103: '369'}
值是連擊對方。有沒有一種有效的方法來做到這一點?
在此先感謝!
這是相當奇怪的是,在所產生的字典中的值應該是str
英格斯,但如果這是你想要的,你可以在一個單一的字典解析使用zip
和join
:
output = {k:''.join(str(x) for x in xs) for k,*xs in zip(key,values1,values2,values3)}
output = {k:''.join(str(x) for x in xs) for k,xs in zip(key,zip(values1,values2,values3))}
使用zip(key,values1,values2,values3)
我們創建了一個迭代即會產生以下形式的元組:
(101,1,4,7),(102,2,5,8),...
現在我們用for k,*xs
統一k
每元組的第一個元素,以及剩餘的元素被存儲在xs
(所以xs
是(1,4,7)
用於第一元組)。
現在我們使用''.join(str(x) for x in xs)
將xs
中的所有元素轉換爲字符串,然後我們將它們結合在一起。
最後我們有k:''.join(str(x) for x in xs)
這是字典理解語法。
試試這個,
resultant_dict = {}
key = [101, 102, 103]
values1 = [1,2,3]
values2 = [4,5,6]
values3 = [7,8,9]
for i in range(len(key)):
resultant_dict[key[i]]=str(values1[i])+str(values2[i])+str(values3[i])
print resultant_dict
的值應該是'str'ings? –
@WillemVanOnsem:是的,它應該是字符串 – Tamil