如何根据用户输入对列表进行排序?
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()
一段时间以来,我一直在努力完成这项工作,但我似乎无法让我的列表按升序排列。我的程序要求用户输入三个整数,然后输出结果,并且应该对输入的数字从最小到最大进行排序。但是,每当我尝试对其进行排序时,它都不会按照我想要的方式进行排序。我已经尝试了几种修改排序方法的方法,但它仍然不起作用。例如,如果我输入 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()