考慮以下Python3程序:Python的賦值運算符關聯
a = [0, 0]
i = 0
a[i] = i = 1
print(a, i)
a = [0, 0]
i = 0
i = a[i] = 1
print(a, i)
我預期的輸出是:
[0, 1] 1
[1, 0] 1
而是我的了:
[1, 0] 1
[0, 1] 1
我的問題是: Python語言規範中有關於賦值運算符關聯性的任何內容,或者是a的行爲bove示例未定義?
我能夠發現的所有表達式都是從左到右進行評估,除了在賦值的情況下首先評估r值,但這沒有幫助。
有趣的是,你的例子是在[該部分的端部(http://docs.python.org/release/非常相似的示例3.0.1 /參考/ simple_stmts.html#賦值語句)。 –