Skip to main content
 首页 » 编程设计

python之在python中对数字进行排序

2025年05月04日13myhome

我正在尝试获得一个函数,如果您执行 sort(listname) ,它会将该列表中的所有数字从最小到最大排序。

我不确定我的问题出在哪里,但我需要一些帮助,因为输出实际上并不是从最小到最大,而是数字的前两个数字从最小到最大。

示例:

If list has 23, 212, 44 in it than I sort it the output will be like this.

输出:

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 不会尝试猜测这些字符串中可能包含什么,因此您会得到一个奇怪的排序顺序。

你有两个选择:

  1. 在比较它们之前将列表元素转换为 int (if(int(my_list[j]) > int(my_list[j+1])):)<
  2. 在本网站上搜索 python natural sort 以获得如何在 Python 中实现“自然排序”的答案。