A. python 中交換兩個列表元素的位置為什麼用numbers[i],numbers[i+1] = numbers[i+1],numbers[i]
numbers[i], numbers[i+1] = numbers[i+1], numbers[i]
這是一個賦值語句,相當於:
t = (numbers[i+1], numbers[i]) # t是一個tuple元組
numbers[i] = t[0]
numbers[i+1] = t[1]
例如:numbers = [5, 6, 7]
i = 0 時
賦值時就是把numbers[i], numbers[i+1] = numbers[i+1], numbers[i] 這個語句中
等號右邊的numbers[i+1], numbers[i] 先求值,得
numbers[1] == 6
numbers[0] == 5
再把 6, 5 賦值給等號左邊(因為list列表是可變的數據類型,它的值可以添加,刪除或改變),即:
numbers[i], numbers[i+1] = 6, 5
也就是:
numbers[0], numbers[1] = 6, 5
相當於:
numbers[0] = 6
numbers[1] = 5
此時,列表numbers 的值就被改變了(兩個元素交換了位置)。
在IDLE 中驗證如下:
>>> numbers = [5, 6, 7]
>>> i = 0
>>> numbers[i], numbers[i+1] = numbers[i+1], numbers[i]
>>> numbers
[6, 5, 7]
最後你的問題表述【交換兩個列表元素的位置】改成【交換列表中兩個元素的位置】是不是更沒有歧義?