转行做码农 发表于 2023-2-15 20:18:36

求助,list.sort()方法的问题

如标题
在交互界面list.sort()方法和min(list)是可以验证的
但是我写的代码如下:

list1=
print('您输入的数字是:',list1)
list1.sort()
print('升序:',list1)
print('最小的数是:',min(list1))

运行结果确是这样的:

请输入5个数字,用逗号隔开
2,-3,5,9,2
您输入的数字是: ['2,-3,5,9,2']
升序: ['2,-3,5,9,2']
最小的数是: 2,-3,5,9,2


没有排序,也没有把最小的找出来~

歌者文明清理员 发表于 2023-2-15 20:23:21

用代码格式发一遍
list1=
print('您输入的数字是:',list1)
list1.sort()
print('升序:',list1)
print('最小的数是:',min(list1))
input返回了字符串
而你的列表只有一项
可以这样list1 = input(提示语).split(', ')
split可以分解字符串,将它分开成列表

转行做码农 发表于 2023-2-15 20:33:22

歌者文明清理员 发表于 2023-2-15 20:23
用代码格式发一遍

input返回了字符串


更改后的代码如下
list1=input("请输入5个数字,用逗号隔开\n").split(',')
print('您输入的数字是:',list1)
list1.sort()
print('升序:',(list1))
print('最小的数是:',min(list1))

运行后的结果如下:
请输入5个数字,用逗号隔开
3,-2,5,9,2
您输入的数字是: ['3', '-2', '5', '9', '2']
升序: ['-2', '2', '3', '5', '9']
最小的数是: -2

十分感谢,一针见血的找到了问题

歌者文明清理员 发表于 2023-2-15 20:35:22

转行做码农 发表于 2023-2-15 20:33
更改后的代码如下
list1=input("请输入5个数字,用逗号隔开\n").split(',')
print('您输入的数字是:', ...

哎不对,每一项是字符串
for i, value in enumerate(data):
    data = int(value)
改成整数
当然如果报错把int改成float

转行做码农 发表于 2023-2-15 20:58:00

歌者文明清理员 发表于 2023-2-15 20:35
哎不对,每一项是字符串

改成整数


你的意思是str.splitf()方法是字符串方法,只是将一个字符串切成了5段,然后对比,如果不转换成int型的话,输入一个汉字不会报错,排序也会按照字符串来排序。
比如
请输入5个数字,用逗号隔开
2,-2,五,1,9
您输入的数字是: ['2', '-2', '五', '1', '9']
升序: ['-2', '1', '2', '9', '五']
最小的数是: -2
最大的数是: 五


所以需要把字符串转换成整型
页: [1]
查看完整版本: 求助,list.sort()方法的问题