为什么我不理解枚举函数?
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 个插槽。)
我想我不太确定是什么或为什么示例 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 个插槽。)