以下是我發現的解決數學問題的Python代碼片段。它到底在做什麼?我不太確定Google要做什麼。這段Python代碼在做什麼?
x, y = x + 3 * y, 4 * x + 1 * y
這是一種特殊的Python語法嗎?
以下是我發現的解決數學問題的Python代碼片段。它到底在做什麼?我不太確定Google要做什麼。這段Python代碼在做什麼?
x, y = x + 3 * y, 4 * x + 1 * y
這是一種特殊的Python語法嗎?
x, y = x + 3 * y, 4 * x + 1 * y
是等價的:
x = x + 3 * y
y = 4 * x + 1 * y
EXCEPT它使用的原始值x和y的兩種計算 - 因爲x和y的新值不分配,直到兩個計算完成。
通用形式是:
x,y = a,b
其中a和b是其值獲得分別分配給x和y的表達式。實際上,你可以指定任意元組(一組逗號分隔值),以同樣大小的變量,任何元組 - 例如,
x,y,z = a,b,c
也將工作,但
w,x,y,z = a,b,c
不會因爲右側元組中值的數量與左側元組中變量的數量不匹配。
這是tuple的分配,也稱爲序列拆包。也許它更清晰,當你周圍添加元組括號:
(x, y) = (x + 3 * y, 4 * x + 1 * y)
值x + 3 * y
被分配到x
和值4 * x + 1 * y
被分配到y
。
這是相同的:
如果以不同的方式對括號進行分組,可能會更清楚:'x,y =(x + 3 * y),(4 * x + 1 * y)'。逗號可能很容易在那裏錯過。 –
啊,是的,括號使得這一切都清楚了 - 眼前看不到它[拍額頭] ... –
我最近也看到了這個被稱爲「同時分配」,這似乎捕捉到的幾個問題的答案的精神。
我認爲一個臨時變量增加了清晰度。希望你不要介意 – hop
我實際上認爲用一個強調的「EXCEPT」解釋它會讓問題變得更清楚,所以我恢復了這個改變。無論如何感謝改善的嘗試,我只是在這件事上有着不同的想法。 :) – Amber
完美的感覺。看到它包裹在括號中使得它完全清楚。非常容易閱讀它,並錯過了那個小細節。謝謝! –