首页 > 代码库 > python核心编程第五章练习-5.17-随机序列

python核心编程第五章练习-5.17-随机序列

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

 

 

 

 

python核心编程第五章练习-5.17-随机序列