Python 为什么这不是选择排序算法

Python 为什么这不是选择排序算法,python,list,algorithm,selection-sort,Python,List,Algorithm,Selection Sort,我试图做选择排序算法,但我无法找出我遗漏了什么。 下面给出两个代码 代码1,我尝试了使用索引访问值,效果很好 代码1: arr = [20,11,64,28,80,64,61,58,23,50,55,21,34,76,39,29,15,66,13,91,74,51] for i in range(len(arr)): min_ele = i for j in range(i,len(arr)): if arr[min_ele] > arr[j]:

我试图做选择排序算法,但我无法找出我遗漏了什么。 下面给出两个代码 代码1,我尝试了使用索引访问值,效果很好

代码1:

arr = [20,11,64,28,80,64,61,58,23,50,55,21,34,76,39,29,15,66,13,91,74,51]
for i in range(len(arr)):
    min_ele = i
    for j in range(i,len(arr)):
        if arr[min_ele] > arr[j]:
            min_ele = j


    arr[i],arr[min_ele] = arr[min_ele],arr[i]

print(arr)
但是代码2,我想我尝试的基本上是一样的。我正在比较值,然后取它们的索引并相互交换,但不知何故,数组根本没有改变,我无法找出我遗漏了什么

代码2:

arr = [20,11,64,28,80,64,61,58,23,50,55,21,34,76,39,29,15,66,13,91,74,51]
for x in arr:
    min_ele = x
    for xx in arr[arr.index(x):len(arr)]:
        if min_ele > xx:
            min_ele = xx

    arr[arr.index(x)],arr[arr.index(min_ele)] = arr[arr.index(min_ele)],arr[arr.index(x)]

print(arr)
但不知怎的,这是可行的

index_1 = arr.index(x)
index_2 = arr.index(min_ele)

arr[index_1],arr[index_2] = arr[index_2],arr[index_1]