origen=['Philadelphia', 'New Orleans']
destino=['Atlanta', 'Dallas', 'Columbus', 'Boston']
costo=[ ['2','6','6','2'] , ['1','2','5','7'] ]
我需要如何合并它們:
costo_envios={
Philadelphia:{
Atlanta:2
Dallas:6
Columbus:6
Boston:2
}
New Orleans:{
Atlanta:1
Dallas:2
Columbus:5
Boston:7
}
}
我曾想過使用 2 個嵌套的“for”,但我得到一個“unlashable”錯誤,這意味著我使用了錯誤型別的索引。
我也試過這個:
costo_envio={origen[l]:{destino[m]:costo[n]} for l,m,n in range(len(origen))}
但我得到了這個錯誤:
TypeError: cannot unpack non-iterable int object
我對 Python 真的很陌生,這個月才自己開始。我該怎么做?
uj5u.com熱心網友回復:
歡迎!
您可以使用 2 個 for 回圈,外部的回圈遍歷源和成本串列,內部的回圈遍歷目的地和成本。
這是我的代碼,希望對你有幫助!
origen = ['Philadelphia', 'New Orleans']
destino = ['Atlanta', 'Dallas', 'Columbus', 'Boston']
costo = [['2', '6', '6', '2'], ['1', '2', '5', '7']]
my_dict = {}
for origin, cost_list in zip(origen, costo):
my_dict[origin] = {}
for dest, cost in zip(destino, cost_list):
my_dict[origin][dest] = cost
祝你好運!
uj5u.com熱心網友回復:
定義您想要的結構并讓 Python 字典理解起作用。
res = {o: {d:c for d, c in zip(destino, co)} for o, co in zip(origen, costo)}
如果您認為它更易于閱讀,您還可以構建 2 個嵌套的 for 回圈。
uj5u.com熱心網友回復:
您可以查看 Python 檔案并開始研究回圈和dict文字語法。
這是一種實作,它使用了理解的概念和 zip 函式:
costo_envio = {o: {d: int(c) for d, c in zip(destino, co)} for o, co in zip(origen, costo)}
# {'Philadelphia': {'Atlanta': 2, 'Dallas': 6, 'Columbus': 6, 'Boston': 2},
# 'New Orleans': {'Atlanta': 1, 'Dallas': 2, 'Columbus': 5, 'Boston': 7}}
uj5u.com熱心網友回復:
使用對串列可以轉換為字典的事實。
d = dict(zip(origen, (dict(zip(*pairs)) for pairs in zip([destino]*len(costo), costo))))
print(d)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465155.html
下一篇:Python字典輸出未按預期列印
