尝试在python中对列表的元素进行排序时,出现错误
def sort():
my_list=[100,90,80,60,50] ## Declared an list
for i in range(0,len(my_list)):
if my_list[i]>my_list[i+1]:
temp=my_list[i]
my_list[i]=my_list[i+1]
my_list[i+1]=temp
print(my_list)
答案 0 :(得分:0)
如果您不练习算法,则可以随时
my_list.sort() #ascending
my_list.sort(reverse = True) #descending
答案 1 :(得分:0)
因此,我对您的代码进行了一些更改。这是一种选择排序算法,this是算法内部发生的事情。
def sort(L):
for i in range(len(L)):
for j in range(i, len(L)):
if L[j] < L[i]:
print("Changing {} by {}".format(L[i], L[j]))
L[i], L[j] = L[j], L[i]
print(L)
return L
我在函数中放入了2张照片,以便您更好地理解该算法。
另外,在Python中,您不需要临时变量即可交换值,您可以像我一样进行操作。
希望我能帮助您!
答案 2 :(得分:-1)
在for循环中必须将范围设置为lenth -1,否则在上一次迭代中[i + 1]会将索引超出范围 您可以使用此:
def sort():
my_list=[100,90,80,60,50] ## Declared an list
for i in range(0,len(my_list)-1):
if my_list[i]>my_list[i+1]:
temp=my_list[i]
my_list[i]=my_list[i+1]
my_list[i+1]=temp
print(my_list)
错误可以通过-1解决,但不知道您要执行什么操作。