Python 请教!最大的与第一个元素交换 这两段代码的区别在哪,

为啥注释的那段成功运行,但没注释的那段没效果。

lis = [3, 2, 5, 7, 8, 1, 5]

t = lis[0]
lis[0] = lis[lis.index(max(lis))]
lis[lis.index(max(lis))] = t

"""t = lis[0]
ind = lis.index(max(lis))
lis[0] = lis[ind]
lis[ind] = t"""

我觉得是第4行的代码把最大值复制到了下标0的位置,然后此时列表中就有两个最大值,所以第5行的再找最大值的下标就有问题。

因为index,函数只寻找第一个与内容相匹配的序号,在第4行里,将第1项设置为,列表里的最大值,所以index函数只会寻找,第一个相匹配的,也就肯定是第一项。