5-17 生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 <N <= 100), (0 <= n <= 2**31 -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随机数出来, 对它们排序,然后显示这个子集。
#!/usr/bin/python
import random
N = random.randint(2, 100) #随机获取一个指定范围内的整数
randlist = random.sample(range(0, 2**31 - 1), N) #从一个序列中随机序列(这里string,tuple,列表都可以看做是序列)获取含有N个元素,以列表形式返回
randlist.sort()
print (randlist)
注:
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。
random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
>>> random.randint(12, 20)
12
random.choice()从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
>>> b = ‘I Love Python‘
>>> random.choice(b)
‘t‘
random.sample()的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
>>> b = ‘I Love Python‘
>>> c = random.sample(b, 4)
>>> c
[‘n‘, ‘t‘, ‘y‘, ‘o‘]
>>> tuple1 = (12, 34, (‘存在‘, ‘女权‘), 56, ‘你好‘)
>>> random.sample(tuple1, 3)
[‘你好‘, 56, 34]
>>> random.sample(tuple1, 3)
[56, 34, 12]
>>> random.sample(tuple1, 3)
[34, ‘你好‘, 56]
>>> random.sample(tuple1, 3)
[(‘存在‘, ‘女权‘), 56, 34]
random.shuffle()的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。
>>> list1 = [1, 2, 3.14, ‘panda‘, ‘Python‘]
>>> random.shuffle(list1)
>>> list1
[‘panda‘, 1, 2, ‘Python‘, 3.14]
引自http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html