如何根据用户输入对列表进行排序?

How to sort a list from user input?

一段时间以来,我一直在努力完成这项工作,但我似乎无法让我的列表按升序排列。我的程序要求用户输入三个整数,然后输出结果,并且应该对输入的数字从最小到最大进行排序。但是,每当我尝试对其进行排序时,它都不会按照我想要的方式进行排序。我已经尝试了几种修改排序方法的方法,但它仍然不起作用。例如,如果我输入 2、10 和 5 作为我的三个数字,它将显示为 "List: [2, 10, 5]".

import math

print ("")
print ("Welcome to my program!")
print ("")

v1 = input("Enter the first number: ")

print ("")

v2 = input("Enter the second number: ")

print ("")

v3 = input("Enter the third number: ")

print ("")

#tried to sort list here
list1 = [int(v1), int(v2), int(v3)]
sorted(list1, key=int)

sum = int(v1) + int(v2) + int(v3)
product = int(v1) * int(v2) * int(v3)
integer = int(v1)//int(v2)
mod = float(v1) % float(v2)
average = (float(v1) + float(v2) + float(v3))/ 3
star= "*"



print ("------------------")
print ("     RESULTS      ")
print ("------------------")
print ("")
print ("Sum: " + str(sum))
print ("")
print ("Product: " + str(product))
print ("")
print ("Integer Division: "+ str(integer))
print ("")
print ("Mod: " + str(mod))
print ("")
print ("Maximum Number: ", max(list1))
print ("")
print ("Minimum Number: ", min(list1))
print ("")
print ("Average: " + str(average))
print ("")
#outputs the list
print ("List: " + str(list1))
print ("")

print (v1 + " " + "".join([star] * int(v1)))
print (v2 + " " + "".join([star] * int(v2)))
print (v3 + " " + "".join([star] * int(v3)))

您需要分配给已排序的输出:

srted  = sorted(list1) # creates a new list

要对原始列表进行排序,请使用 list.sort:

list1.sort()  # sorts original list

您不需要传递键来排序 ints

sorted returns 一个您必须重新分配的值,并且密钥是不必要的:

list1 = [int(v1), int(v2), int(v3)]
list1 = sorted(list1)

或者,您可以调用列表的 sort 方法直接修改它而无需 return 和重新分配:

list1 = [int(v1), int(v2), int(v3)]
list1.sort()