如何将这个Python程序的结果从最低值到最高值进行排序



下面是我的代码,它生成0到101之间的随机数的X个实例。

import random
x = int(raw_input("Enter desired number: "))
def randoTaker():
    print(random.randint(0, 101))
randoTaker()
for i in range(x-1):
    randoTaker()

我的问题是:如何将这些结果从低到高排序?例如:假设值为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

问题是打印结果而不是存储结果。你可能想把它们保存在一个列表中,然后对列表进行排序:

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)

最新更新