python - 通过用户输入的函数对列表进行排序
问题描述
我正在尝试编写一个函数,该函数将来自用户输入的整数列表作为参数并对它们进行排序。
我遇到了一些问题,因为如果我将整数转换为字符串(我认为这可能是最好的方法,因为输入中有逗号)并将它们附加到一个空列表中,我会得到一个错误。
这里的功能:
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'
我究竟做错了什么?
解决方案
尝试这个:
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]
推荐阅读
- git - 给定提交的unix时间戳,如何从git获取提交?
- reactjs - 输入“承诺”
>' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法 - java - Java流如何防止在lambda表达式中重复相同的值
- dart - 什么更好,一个空的不可为空的字符串或一个空且可以为空的字符串?
- angular - 无法在默认情况下在 Angular 上的 Dynamics365 营销活动网站中添加 Angular/材料
- python - 与 TensorFlow 并行执行许多基于梯度的优化
- python - 如何在 replit 数据库中存储对象?
- osrm - 使用 osrm-backend 检测在桥梁或高速公路上方/下方的路线
- google-sheets - 具有多个条件的 Google 表格平均值
- python - 如何在 Python 中创建交互式 3D 图形