如何从最低到最高值对此Python程序的结果进行排序?

时间:2015-07-03 15:48:23

标签: python sorting

下面是我的代码,它生成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。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:4)

下面怎么样;

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

答案 1 :(得分: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)])

答案 2 :(得分:0)

首先,您只是在函数内打印值。如果要对生成的随机数进行排序,则应考虑返回数字,然后将它们添加到列表中。

将所有数字添加到列表后,您可以使用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)