Python将结果 从左到右 存储在多个目标中,并按该顺序执行分配目标表达式。
因此,您的第二个版本基本上可以归结为:
temp = list[list.index(max(list))],list[0]
list[0] = temp[0]
list[list.index(max(list))] = temp[1]
请注意,更改 *list[0]
这在Assignment语句 文档中记录:
从那里开始,好像每个目标都是一个目标,因此以下文档从左到右适用于每个目标:
将对象分配给单个目标的定义如下。
[…]
如果您更改分配顺序,则代码将起作用:
list[list.index(max(list))], list[0] = list[0], list[list.index(max(list))]
因为现在list[list.index(max(list))]
分配给 first 。