小编Sop*_*hin的帖子

在 Python 中同时分配索引不同的列表元素

>>arr = [4, 2, 1, 3]
>>arr[0], arr[arr[0]-1] = arr[arr[0]-1], arr[0]
>>arr
Run Code Online (Sandbox Code Playgroud)

我期待的结果 >>[3, 2, 1, 4]

结果我得到 >>[3, 2, 4, 3]

基本上我试图交换 #4 和 #3(在我的实际问题中,索引不会是 0,而是一个迭代器 "i" 。所以我不能只做 arr[0], arr[3] = arr[ 3], arr[0]) 我认为我对同时分配的理解相当好。显然我错了。我不明白为什么赋值左侧的 arr[arr[0]-1] 计算的是 arr[2] 而不是 arr[3]。如果分配同时发生(从右侧评估),

arr[0](在左侧第二个元素的索引内​​)仍应为“4”

arr[0] -1(左侧第二个元素的索引)因此应为“3”

python variable-assignment

14
推荐指数
1
解决办法
712
查看次数

标签 统计

python ×1

variable-assignment ×1