相关疑难解决方法(0)

是否有标准化的方法在Python中交换两个变量?

在Python中,我看到使用这种语法交换了两个变量值:

left, right = right, left
Run Code Online (Sandbox Code Playgroud)

这被认为是交换两个变量值的标准方法,还是有一些其他方法可以按惯例最常交换两个变量?

python syntax swap conventions

310
推荐指数
5
解决办法
19万
查看次数

在 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 ×2

conventions ×1

swap ×1

syntax ×1

variable-assignment ×1