我一直试图让这项工作工作一段时间,而我似乎无法按照升序排序。我的程序要求用户输入三个整数然后输出结果,并且应该对从最小到最大输入的数字进行排序。但是,每当我尝试对它进行排序时,它都不会按照我想要的方式对其进行排序。我已经尝试了几种修改排序方法的方法,但它仍然不起作用。例如,如果我输入2,10和5作为我的三个数字,它将显示为"列表:[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)))
答案 0 :(得分:2)
您需要分配到已排序的输出:
srted = sorted(list1) # creates a new list
要对原始列表进行排序,请使用list.sort
:
list1.sort() # sorts original list
您不需要传递密钥来对ints
进行排序。
答案 1 :(得分:2)
sorted
返回一个必须重新分配的值,并且密钥是不必要的:
list1 = [int(v1), int(v2), int(v3)]
list1 = sorted(list1)
或者,您可以调用列表的sort
方法直接修改它而不返回并重新分配:
list1 = [int(v1), int(v2), int(v3)]
list1.sort()