python 生成n个,在一定范围之间的不重叠的随机数 列表实现 集合实现

生成n个,在0-100之间的不重叠的随机数。

分别使用列表和集合来实现。

  • 列表法实现时核心是判断新生成的随机数是否已经存在于列表中,可以使用 if x not in list进行判断。
  • 集合法使用时则不用担心重叠问题,因为集合天然不允许重叠。
  • 使用while len(numbers) < n作为while循环的条件,即可生成一组长度为n的不重叠随机数。
  • Notes:向列表中添加元素使用list.append(x),而向集合中添加元素使用set.add(x)
import random


def collectionMethod(n):
    """集合方式实现"""
    numbers = set()
    while len(numbers) < n:
        # 0~100之间的随机数
        i = random.randint(0, 100)
        numbers.add(i)
    return numbers


def listMethod(n):
    """列表的方法实现"""
    numbers = []
    while len(numbers) < n:
        i = random.randint(0, 100)
        if i not in numbers:
            numbers.append(i)
    return numbers


if __name__ == '__main__':
    n = int(input("请输入数字个数n\n"))
    # 生成n个,在0-100之间的不重叠的随机数。
    print(f"集合方式实现:{collectionMethod(n)}")
    print(f"列表方法实现{listMethod(n)}")

运行结果

在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SK Primin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值