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)}")

运行结果

在这里插入图片描述

posted @ 2021-12-11 20:04  SKPrimin  阅读(600)  评论(0编辑  收藏  举报