Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列表按升序排序?sort()函数不工作?_Python_Sorting - Fatal编程技术网

Python 如何将列表按升序排序?sort()函数不工作?

Python 如何将列表按升序排序?sort()函数不工作?,python,sorting,Python,Sorting,我已经开始了一个简单的代码,它获取数字的输入,然后将这些数字按升序排序。我尝试使用sort函数,但它将这些数字按字母顺序排序。例如: [3,13,20]将分类为13,20,3,因为第一个数字是1-3,第二个数字是2-0,第三个数字是3 我试着简单地在带有[3,13,20]的列表上使用sort函数,它给出了正确的答案:3,13,20 因此,我得出结论,问题在于我的代码的第一部分 inputstring = input("Enter Numbers:") numbers = inputstring.

我已经开始了一个简单的代码,它获取数字的输入,然后将这些数字按升序排序。我尝试使用sort函数,但它将这些数字按字母顺序排序。例如: [3,13,20]将分类为13,20,3,因为第一个数字是1-3,第二个数字是2-0,第三个数字是3

我试着简单地在带有[3,13,20]的列表上使用sort函数,它给出了正确的答案:3,13,20 因此,我得出结论,问题在于我的代码的第一部分

inputstring = input("Enter Numbers:")
numbers = inputstring.split()
numbers.sort()
print(numbers)
这将导致数字按字母顺序排列为3、13、20。鉴于:

list = [13,3,20]
list.sort()
print(list)
将按升序给出答案3,13,20

是否有人能够帮助调试为什么我的代码的第一部分:

inputstring = input("Enter Numbers:")
numbers = inputstring.split()
给出了错误的升序

谢谢

拆分的结果始终是一个字符串列表,其排序与int不同。你需要转换它们;一种方法是列表理解:

numbers = [int(number) for number in inputstring.split()]

据我所知,你给程序的输入如下

13 3 20
默认情况下,它将把输入看作字符串。

因此,当您拆分输入时,它会创建一个包含字符串元素的列表,而不是像这样的整数元素['13','3','20'],而不是[13,3,20],这就是您可能看到意外输出的原因

试试这个来解决它

lis = input().split()
lis = [int(i) for i in lis]
lis.sort()

天哪,我真傻。。。是因为当我在“数字”上使用.sort函数时,数字是str格式的吗?这就是它按字母顺序排序的原因!?您的输入是一个字符串列表,因此它按字符串顺序排序。尝试使用INT将输入转换为整数谢谢,我刚刚意识到我的愚蠢错误0;!以上内容是否与:numbers=listmaint,numbers相同?@这是endofpine,是的。就个人而言,在这种情况下,我更喜欢列表理解。