首页 > 解决方案 > 通过用户输入的函数对列表进行排序

问题描述

我正在尝试编写一个函数,该函数将来自用户输入的整数列表作为参数并对它们进行排序。

我遇到了一些问题,因为如果我将整数转换为字符串(我认为这可能是最好的方法,因为输入中有逗号)并将它们附加到一个空列表中,我会得到一个错误。

这里的功能:

def sort_integers(x):
    lst = []
    for i in x:
        lst.append(i)
        sorted_list = sorted(lst)
    print(sorted_list)
    
sort_integers(str(input("Enter some numbers: ")))

但是如果我输入 10、9、8 作为整数,这就是我得到的输出:

[',', ',', '0', '1', '8', '9']

预期输出为:8,9,10. 我曾尝试使用sort_integers(int(input("Enter some numbers: "))),但出现此错误:

ValueError: invalid literal for int() with base 10: '10,9,8'

我究竟做错了什么?

标签: pythonlistinput

解决方案


尝试这个:

def sort_integers(x):
    x = x.split(',')
    sorted_list = sorted([int(i) for i in x])
    print(sorted_list)

sort_integers(str(input("Enter some numbers: ")))

或者这个(现有代码中的最小更改)

def sort_integers(x):
    x = x.split(',')
    lst = []
    for i in x:
        lst.append(int(i))
        sorted_list = sorted(lst)
    print(sorted_list)


sort_integers(str(input("Enter some numbers: ")))

输出

 Enter some numbers: 10,9,8
 [8, 9, 10]

推荐阅读