打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python|random之随机抽人分组
引言
random库让Python语言有了灵魂,random是python函数中非常实用的函数之一,大部分python初学者都会去了解它,但是对它都不怎么刻意学习,其实random库很有内涵,有许多非常实用的东西:
(1)random()返回0<=n<1之间的随机实数n;
(2)choice(seq)则是从序列seq随机返回元素;
(3)getrandbits(n)以长整数形式返回n个随机位;
(4)shuffle(seq)对序列seq进行打乱重新排列;
(5)sample(seq,n)从序列seq中随机返回n个元素;
(6)randrange(x,y,z)x和y代表随机范围,z代表递增量;
(7)randint(n,m)用于随机生成一个指定范围内的整数,范围在n到m之间;
(8)uniform(n.m)用于随机生成一个指定范围内的浮点数,范围同样在n到m之间;
问题描述
针对班级要求,30人里面随机分配4组,每组人数为4人,进行小游戏。
示例:
输入:people=['小明', '小红', '小兰', '小美', '小黄', '小米', '小梦']
输出:第一组:[ '小明', '小兰']
第二组:[ '小美', '小米']
解决方案
算法描述:
面对要求可以知道问题是随机抽人分组,一看随机便要运用random库,再看随机抽人分组,每组人数固定,那么便可以用sample解决,其次既然是抽人分组那么抽过的人就不会再被抽中,就可以把抽到的人选出来进行删除然后进行下一轮的抽人分组。
随机抽人分组问题Python代码
from random import*
people=['一号','二号','三号','四号','五号','六号','七号','八号','九号','十号','十一号','十二号','十三号','十四号','十五号','十六号','十七号','十八号','十九号','二十号','二十一号','二十三号','二十三号','二十四号','二十五号','二十六号','二十七号','二十八号','二十九号','三十号']
ans = sample(people,4)
key='第一组:{0}'.format(ans)  #把随机元素返回进key
for i in ans:
people.pop(people.index(i)) #遍历ans随机返回的元素并在people中进行删除
print(key)
ans_2 = sample(people,4)
key_2='第二组:{0}'.format(ans_2)
print(key_2)
for j in ans_2:
people.pop(people.index(j))
ans_3 = sample(people,4)
key_3='第三组:{0}'.format(ans_3)
print(key_3)
for w in ans_3:
people.pop(people.index(w))
ans_4 = sample(people,4)
key_4='第四组:{0}'.format(ans_4)
print(key_4)
运行实例:
结语
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python凡人笔记
Python如何产生20个随机整数?
教程|Python随机数生成方法汇总,你都有了解吗?
盘点一个random.sample随机取样的报错问题
大话 Python:python 操作 excel 系列 -- 数据汇总与统计
Python初学系列random是Python的随机数标准库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服