列表中的python随机

时间:2012-12-11 00:33:11

标签: python list

这是我目前的代码:

import random

while True:
    try:
        num   = int(input("Enter the total number of digits you want to generate:"))
        upper = int(input("Enter your highest number:"))
        lower = int(input("Enter your lowest number:"))

        if upper < 1 or lower < 1 or upper <= lower:
            print ("Sorry, invalid. Make sure your upper bound is higher than lower bound, make sure all numbers are integers greater than 0.")
            continue

        if num < 1:
            print ("Sorry, invalid. Try again.")
            continue

        **mylist = [0] * num
        for x in range (lower, upper):**

这里的部分是我不太确定如何继续前进的部分。我想根据用户输入的数字以及用户输入到此处显示的列表的上限和下限内生成随机数。有人可以指导我完成这个吗?谢谢!

except:
    print ("Sorry, invalid. Try again.")

else:
    print ("Thank you.")
    break

4 个答案:

答案 0 :(得分:2)

如果您使用**替换以下random.randint(lower, upper)行,则会显示所需的列表:

mylist = []
for _ in range(num):
    mylist.append(random.randint(lower, upper))

print mylist

你也可以用列表理解来做到这一点:

mylist = [random.randint(lower, upper) for _ in range(num)]
print mylist

答案 1 :(得分:1)

你可能需要:

print [random.randint(lower, upper) for n in range(num)] 

显示最小下限和最大上限(包括)的num个随机整数列表。

答案 2 :(得分:0)

如果您想要一个较低和较高(含)之间的数字的随机子集,您可以使用:

random.sample(num, xrange(lower, upper + 1))

http://docs.python.org/2/library/random.html#random.sample

但我认为您希望重复是可能的,在这种情况下使用其他答案之一。

答案 3 :(得分:0)

您可以使用randint生成给定范围内的数字。

返回一个随机整数 x ,以便 a&lt; = x&lt; = b。

import random
print random.randint(a, b)

因此,要生成 a b

范围内的 N 数字
numbers = [random.randint(a, b) for i in range(N)]
print numbers