【发布时间】:2026-02-23 19:55:02
【问题描述】:
我正在尝试编写一个函数,该函数将用户输入的整数列表作为参数并对其进行排序。
我遇到了一些问题,因为如果我将整数转换为字符串(我认为这可能是最好的方法,因为输入中有逗号)并将它们附加到一个空列表中,我会收到一个错误。
这里是函数:
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'
我做错了什么?
【问题讨论】:
-
你学习
split了吗?如果没有,请这样做。谷歌“Python 拆分字符串”。您需要拆分输入字符串,然后将生成的字符串列表转换为数字列表。 -
在循环中使用输入并将它们作为 int 附加到新列表中。然后 sort() 该列表..
-
@TechieViN 这并不能解决从一行中读取多个用逗号分隔的数字的问题。
-
尝试
sort_integers(map(int, input("...").split(','))),即split字符串由,,然后map每个子字符串到int