需求:从列表中,随机抽取" 一组 "无重复元素,返回结果到一个新的列表中。
为朝阳等地区用户提供了全套网页设计制作服务,及朝阳网站建设行业解决方案。主营业务为做网站、网站制作、朝阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
包:random
函数:random.sample(list, num)
参数说明:list是待抽取的列表,num是抽取的个数;返回值为一个新的列表。
使用如下:
第一步:
我分析如果从一堆数里随机抽取几个,并且按原来的顺序输出的话,那么至少要随机两次才能完成,第一次随机的值是确定随机几个数,第二次随机是确定随机的值。
第二步:
随机抽取几个可以用random.randint(1,n)这个函数来实现,这个n代表所要随机列表的长度。
第三步:
上一步出来一个数决定此次随机出几个值出来,现在假定是n,再次随机就是从列表里随机抽取n个值这个可以用random.sample(dict,n)这个方法实现,这个函数可以传入一个字典,和一个数字返回一个列表。
第四步:
得到的结果需要按原来的顺序输出,那么存储就需要考虑用dict了,因为字典的k-v特性可以实现找到原来的顺序,我具体的实现如下:
import random
#random_number(a)函数的功能传入一个数,返回1到这个数的随机数
def random_number(a):
return random.randint(1,a)
#print(random_number(4))
#random_list(a,b)函数的功能,传入一个字典a,和一个数值b,
#1=b=a的长度,返回一个拥有b的个数值是a中的key值的list
def random_list(a,b):
return random.sample(list(a),b)
a={1:'a',2:'j',3:'g',4:'h',5:'k',6:'i',7:'l',8:'f',9:'v',10:'b',11:2,12:5,13:'x'}
b=len(a)
#print(random_list(a,b))
#random_dictvalue函数的功能,传入一个字典a和一个列表b,返回以b为key,a中对应的value的值
def random_dictvalue(a,b):
b.sort()
for i in b:
print(a.get(i),end=' ')
print(random_dictvalue(a,random_list(a,random_number(b))))
# result
================================ RESTART ================================
a f None
================================ RESTART ================================
g i None
================================ RESTART ================================
a j h l v b 2 5 x None
#导入随机数模块
import random
#定义一个空的数组,用作取样表
reList = []
#为取样表赋值,1~100
for i in range(1,101):
reList.append(i)
#使用sample方法,取3个随机数
res = random.sample(reList,k=3)
print("三个随机数是:{}".format(res))