如何将此Python程序的结果从最低值排序到最高值?
问题描述:
下面是我的代码,这会产生0到101如何将此Python程序的结果从最低值排序到最高值?
import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
print(random.randint(0, 101))
randoTaker()
for i in range(x-1):
randoTaker()
之间的随机数X实例我的问题:如何从低这些结果高排序?例如:假设我的输入值为4的当前输出为12,34,5,45。我期望的结果是5,12,34,45。
任何帮助将非常感谢!
答
下面怎么样;
import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
return random.randint(0, 101)
for j in sorted([randoTaker() for i in range(x)]):
print j
+0
正是我在找什么,谢谢! –
答
问题是,您正在打印结果而不是存储它们。你可能想将它们保存在一个列表,然后排序列表:
import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
return random.randint(0, 101)
results = []
for i in range(x-1):
results.append(randoTaker())
results.sort()
print results
如果你真的想,你可以使用列表理解:
import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
return random.randint(0, 101)
print sorted([randoTaker() for i in range(x-1)])
答
首先,你只是打印你的功能内的价值。如果您想对生成的随机数进行排序,您应该考虑返回数字,然后将它们添加到列表中。
将所有数字添加到列表后,可以使用list.sort()
函数或sorted()
函数对列表进行排序。
例子:
import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
return random.randint(0, 101)
print(randoTaker())
randlst = []
for i in range(x-1):
randlst.append(randoTaker())
randlst.sort()
print(randlst)
https://wiki.python.org/moin/HowTo/Sorting –
你有搜索[python的文档(https://docs.python.org/2/library/ functions.html#排序)? –
打印未排序后是否要排序? –