我將如何解決這個問題?值按照相同的詞典另一個值設置,蟒蛇
d = {
'a':3,
'b':(d['a']*3)
}
print(d)
導致一個錯誤,因爲我嘗試設置使用字典的名稱「B」的價值,顯然Python並不喜歡這樣。我將如何解決這個問題?
另外:
l = [[2], [(l[0][0]*2)]]
print(l)
有同樣的問題。
我將如何解決這個問題?值按照相同的詞典另一個值設置,蟒蛇
d = {
'a':3,
'b':(d['a']*3)
}
print(d)
導致一個錯誤,因爲我嘗試設置使用字典的名稱「B」的價值,顯然Python並不喜歡這樣。我將如何解決這個問題?
另外:
l = [[2], [(l[0][0]*2)]]
print(l)
有同樣的問題。
鑑於分配如何工作 - 在RHS表達式第一eval'd,只有到那時是綁定到LHS得到的對象 - ,這是可以預料的:您無法引用尚未在當前範圍內創建的名稱。
的解決方案,要麼使用您要重用值的中間變量,如蘭博的答案解釋,或先與第一鍵或索引/值對構建dict
(或list
或其他)再建另一方面,即:
d = {"a", 3}
d["b"] = d["a"] * 3
首先將值賦給變量:
x = 3
d = {'a': x, 'b': x*3}
y = 2
l = [[y], [y*2]]
這肯定會起作用,但這只是整個代碼的一個微縮版本,我不認爲數百個變量是整齊的,如果我將它作爲變量,反正我不需要列表。 – Emlingur
鑑於分配如何工作 - 在RHS表達式第一eval'd,只有到那時是綁定到LHS得到的對象 - ,這是可以預料到:你不能引用名稱尚未在當前範圍內創建。 –
您可以發表評論作爲回答請 – Emlingur
完成後,您可以立即刪除自己的轉發。 –