[問題] arry swap
1)
A = [1, 3, 2]
i = 2
idx = A[i] - 1
A[i], A[idx] = A[idx], A[i]
>>> A = [1, 2, 3]
2)
A = [1, 3, 2]
i = 2
A[i], A[A[i] - 1] = A[A[i] - 1], A[i]
>>> A = [1, 3, 2]
為什麼 1)可以成功地交換 2)不行?
請大家指點迷津 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 172.89.32.145
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1515218082.A.790.html
※ 編輯: suhang (172.89.32.145), 01/06/2018 13:55:11
→
01/06 14:37,
8年前
, 1F
01/06 14:37, 1F
→
01/06 14:41,
8年前
, 2F
01/06 14:41, 2F
試了一下
temp = A[ A[i] - 1]
A[ A[i] - 1] = A[i]
A[i] = temp
這樣子可以成功地交換
那為什麼寫成一行 A[i], A[A[i] - 1] = A[A[i] - 1], A[i] 卻沒辦法?
※ 編輯: suhang (172.89.32.145), 01/06/2018 16:40:16
→
01/06 19:15,
8年前
, 3F
01/06 19:15, 3F
→
01/06 19:21,
8年前
, 4F
01/06 19:21, 4F
→
01/06 19:35,
8年前
, 5F
01/06 19:35, 5F
→
01/06 19:38,
8年前
, 6F
01/06 19:38, 6F
→
01/06 19:38,
8年前
, 7F
01/06 19:38, 7F
→
01/06 19:39,
8年前
, 8F
01/06 19:39, 8F
推
01/06 19:56,
8年前
, 9F
01/06 19:56, 9F
→
01/06 19:58,
8年前
, 10F
01/06 19:58, 10F
→
01/06 19:59,
8年前
, 11F
01/06 19:59, 11F
→
01/06 20:00,
8年前
, 12F
01/06 20:00, 12F
→
01/06 20:00,
8年前
, 13F
01/06 20:00, 13F
→
01/06 20:00,
8年前
, 14F
01/06 20:00, 14F
推
01/06 21:47,
8年前
, 15F
01/06 21:47, 15F
推
01/08 01:20,
8年前
, 16F
01/08 01:20, 16F