我正在尝试获得一个函数,如果您对它进行排序(列表名),它将对该列表中的所有数字进行从最小到最大的排序。
我不确定我的问题是什么,但是我需要一些帮助,因为输出实际上并不是最小到最大,对于输出的前两个数字来说,它最小到最大。
范例:
如果list中有23、212、44个,而不是我对它进行排序,则输出将是这样。
输出:
212,23,44
它 应该是 23、44、212。
码:
def sort(my_list): size = len(my_list) for i in range(size): for j in range(size-i-1): if(my_list[j] > my_list[j+1]): tmp = my_list[j] my_list[j] = my_list[j+1] my_list[j+1] = tmp
更多代码:
numbers=([]) amount=input("How many numbers are in your list? ") print("") counter = 0 ran = 0 while counter < int(amount): counter = counter + 1 ran = ran + 1 num3 = input(str(ran) + ". Input: ") try: val = int(num3) except ValueError: num3 = input(str(ran) + ". Input: ") sort(numbers) numbers.append(num3)
看起来您的列表中除了字符串以外没有任何数字。Python不会尝试猜测这些字符串中可能包含的内容,因此您会得到一个奇怪的排序顺序。
您有两种选择:
int
if(int(my_list[j]) > int(my_list[j+1])):
python natural sort