06_第一次亲密接触之list与set实现随机抽题

在这里插入图片描述


博文配套视频课程:24小时实现从零到AI人工智能


业务需求分析

  1. 目前题库有100道题,试题索引为1~100,想编写一个小功能实现随机抽取10道不重复试题
  2. 用来存储试题索引可以选择list、set,思考这两种数据结构在此需求中的应用场景
  3. 随机抽取因此会使用到随机数,可以采用Python API实现,首先导入系统模块并使用模块中的函数,代码如下
import random
# [a, b] 返回是一个闭区间值
for _ in range(10):
    # 默认生成的随机数可能会有重复
    print(random.randint(1, 20),end=' ')

List存储不重复数

number = 10   # 生成10个不重复随机数
print('-'*20,'采用list列表存储不重复试题索引','-'*20)
ll = []   # 采用列表来存储试题索引
while True:
    e = random.randint(1, 100) # [a, b] 返回是一个闭区间值
    # 如果当前值在列表中不存在则追加列表
    if e not in ll:
        ll.append(e)
        if len(ll) == number:
            break
print(ll)

Set存储不重复随机数

number = 10   # 生成10个不重复随机数
print('-'*20,'采用set列表存储不重复试题索引','-'*20)
ss = set()   # 采用set集合存储试题索引
while True:
    e = random.randint(1, 100) # [a, b] 返回是一个闭区间值
    ss.add(e)   # set是无序因此没有 append方法
    if len(ss) == number:
        break
print(ss)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值