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