关于python随机抽取各类型不重复值的思考(sample与randint的区别)

更新时间:2023-05-03 12:09:05 阅读: 评论:0

关于python随机抽取各类型不重复值的思考(sample与randint的区别)
前入学教育心得体会 ⾔
有道题⽬这样的:
某次考试,需从题库中抽取⼀定数量题⽬,假设题库中共有 1000 道题⽬,其中单选题 200 桂花树的作用 道,多选题 120 道,判断题 200 道,填空题 400 道,简答题 80 道,现在需要随机抽出 25 道题,请给 出较合理的数据抽样⽅法,并编程实现,要求给出源代码(需有注释),并给出⼀次抽取结果。
如果这是道数学题就很简单,算⼀下简笔画小老鼠 各个题⽬占⽐是多少再乘随机抽出题⽬的个数25就⾏
但⽤python编程实现的话就会发现很多⼩技巧在⾥⾯
先把我的代码放上来
import random
dictsum ={'躁狂抑郁性精神病 单选':200,//各个类型题⽬各有多少道题
'多选':120,
'判断':200,
'填空':400,
'简答':800}
dict={'单选':5,//每个类型题夜莺读后感 ⽬需要抽出多少道题
'多选':3,
'判断':5,
'填空':10,
'简答':2}
for name,sum in d5人制足球场尺寸 ictsum.items()://循环di再见翻译 ctsum字典获取信息
print(name,':', random.sample(range(1,sum),dict[name]))
//不重复的输出五种类型题⽬
输出结果是这样
思考
⾸先看下,因为题⽬背景是要出题
隐含的意思是:题⽬不能重复
所以这个时候不光要输出五种类型值
还要做到不能重复
我的想法⼀开始是建⽴两个数组,但是python⾥没有数组
还是字典更适合些
于是就建⽴了对应的字典来存储
dic雨天简笔画 t成山头 sum对应所有题库的类型与值
dict对应的需要抽出的类型与值
为了得到题库⾥每个类型值需要对其进⾏遍历
所以写出了个for循环
sum对应这dictsum中总数⽬,即200,120、、、
name则对应dictsum中的题⽬类型,即单选,多选、、、
插⼀句
本来还想使⽤‘单选‘(dict)与’单选和’(dictsum)来区分两者但是发现这样需要写两个for循环实在太不妥当
所以投机取巧的统⼀命名
random这个⾃然不⽤多少直接随机⽣成数,别忘记加上头⽂件
⾄于为什么使⽤random.sample()⽽不使⽤random.randint()
以下截取了开发者⼿册中的函数解释
randint更倾向于随机⽣成数,随机数中可能重复也可能不重复
sample只会进⾏⽆重复随机抽样
两个使⽤⽅法还是很相近
结论
如果题⽬只是要求随机产⽣就⽤randint
如果要求不能重复就⽤sample

本文发布于:2023-05-03 12:09:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/520698.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   需要   抽出   题库   给出
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图