【发布时间】:2015-01-13 21:52:37
【问题描述】:
我有一个列表,我需要将列表中的第一个元素与列表中的最大元素交换。
但为什么代码 1 有效而代码 2 无效:
代码 1:
a = list.index(max(list))
list[0], list[a] = list[a], list[0]
代码 2:
list[0], list[list.index(max(list))] = list[list.index(max(list))], list[0]
我认为 Python 会先评估右侧,然后再将其分配给左侧的名称?
【问题讨论】:
-
我对这个问题的激进投票感到有点困惑。如果您不知道分配目标的评估顺序发生了什么,这确实是令人费解的行为。
-
@MartijnPieters 没错,这就是为什么我对人们的行为感到非常惊讶的原因,因为这个可怜的家伙有 10 的声誉,而且对于编程和这个网站来说肯定是新手。
-
@MartijnPieters 可能是,但我认为由于缺乏研究,人们正在投票。