Python 创建随机数,不包括列表中的数字
假设我有一个数字列表(不是一个特定的范围,它可能会改变),并希望生成一个随机数,排除列表中的数字 排除的数字列表来自sql查询 随机数的唯一限制是位数,它可以来自:Python 创建随机数,不包括列表中的数字,python,python-2.7,Python,Python 2.7,假设我有一个数字列表(不是一个特定的范围,它可能会改变),并希望生成一个随机数,排除列表中的数字 排除的数字列表来自sql查询 随机数的唯一限制是位数,它可以来自: random_number = ''.join(random.choice(chars) for _ in range(size)) 所以我想生成随机数(有大小限制),不包括数字列表 while random_number in exclude_list: random_number = ''.join(random.ch
random_number = ''.join(random.choice(chars) for _ in range(size))
所以我想生成随机数(有大小限制),不包括数字列表
while random_number in exclude_list:
random_number = ''.join(random.choice(string.digits) for _ in range(size))
有没有一种类似python的方法(除了使用while循环)可以做到这一点
示例:生成一个不存在于数字列表中的2位随机数,如exclude_list=[22,34,56,78]您可以调用
随机。选择使用set
排除列表中您不想成为随机选择一部分的项目:
>>> import random
>>> my_list = [1, 2, 3, 4, 5, 6, 7]
>>> exclude_list = [3, 6, 7]
# list containing elements from `my_list` excluding those of `exclude_list`
>>> valid_list = list(set(my_list) - set(exclude_list))
>>> random.choice(valid_list)
5 # valid random number
您可以使用set
调用random.choice
以排除列表中您不想成为随机选择一部分的项目:
>>> import random
>>> my_list = [1, 2, 3, 4, 5, 6, 7]
>>> exclude_list = [3, 6, 7]
# list containing elements from `my_list` excluding those of `exclude_list`
>>> valid_list = list(set(my_list) - set(exclude_list))
>>> random.choice(valid_list)
5 # valid random number
排除的数字列表有多大?包含的数字列表有多大?排除的数字列表来自sql查询,因此不是固定长度。我认为您也需要边界来包含,除了列表中的数字之外,从-无穷大
到+无穷大
的随机数是很困难的。如果你表现出你已经在首先解决问题上付出了一些努力,你将有更好的机会得到有用的回答。如果有,请在问题中添加您尝试过的内容。您的编辑让我更加困惑。您希望从哪个范围生成随机数?“排除列表到期”是指列表中的数字应作为随机数生成,或者排除列表中的数字不应是随机生成的数字的一部分?排除的数字列表有多大?包含的数字列表有多大?排除的数字列表来自sql查询,因此不是固定长度。我认为您也需要边界来包含,除了列表中的数字之外,从-无穷大
到+无穷大
的随机数是很困难的。如果你表现出你已经在首先解决问题上付出了一些努力,你将有更好的机会得到有用的回答。如果有,请在问题中添加您尝试过的内容。您的编辑让我更加困惑。您希望从哪个范围生成随机数?“排除列表到期”是指列表中的数字应作为随机数生成,还是排除列表中的数字不应作为随机生成的数字的一部分?