为什么我不理解枚举函数?

Why about the function enumerate am I not understanding?

我想我不太确定是什么或为什么示例 2 不像示例 1 那样排序。

numList = [4,5,7,2,3,100,43,543,34]

for i1,x1 in enumerate(numList):
    for i2,x2 in enumerate(numList):
        if numList[i1] < numList[i2]:
            numList[i1],numList[i2] = numList[i2],numList[i1]
            print(numList)


for i1,x1 in enumerate(numList):
    for i2,x2 in enumerate(numList):
        if x1 < x2:
            numList[i1],numList[i2] = numList[i2],numList[i1]
            print(numList)
        

示例 1 结果:[2, 3, 4, 5, 7, 34, 43, 100, 543]
示例 2 结果:[2, 3, 4, 5, 34, 43, 100, 7, 543]

交换改变了内循环体中numList[i1]的值;它不会更改 x1 的值(直到外循环的下一次迭代才会更改)。

(也就是说,x1 是对赋值时 numList[i1] 处的 int 值的引用,而不是对 i1 的引用numList 的第 th 个插槽。)