如何在Python中选择不在列表中的随机数?

如何在Python中选择不在列表中的随机数?

在本文中,我们将向您展示如何在Python中选择不在列表中的随机数。以下是完成此任务的各种方法−

  • 使用random.choice()函数
  • 使用random.choice()函数和List Comprehension
  • 使用random.choice()和set()函数
  • 使用random.randrange()函数

阅读更多:Python 教程

使用random.choice()函数

random.choice()方法从指定序列中返回一个随机元素。该序列可以是字符串、范围、列表、元组或任何其他内容。

语法

random.choice(sequence)

参数

序列 − 任何序列,如list,tuple等。

算法(步骤)

要执行所需的任务,请按照以下算法/步骤操作−

  • 使用import关键字导入 随机数 模块。

  • 创建一个变量来存储输入列表并给它一些虚拟值。

  • 使用 max() 函数(返回迭代中最高价值项目/最大数字)获取输入列表中的最大元素。

  • 创建一个新列表(空列表)来存储不在给定列表中的值。

  • 使用for循环从0到最大元素进行循环。

  • 在循环内,使用not in运算符检查迭代器值是否不在给定列表中。

  • 如果它不在给定列表中,则使用append()函数将此元素添加到新列表中。

  • 使用random.choice()方法从中选取一个随机元素(此函数从指定序列即列表返回一个随机元素)。

  • 打印不在列表中的随机元素。

示例

以下程序使用random.choice()函数返回不在输入列表中的随机元素−

# 导入随机数模块
import random

# 输入列表
inputList = [3, 10, 5, 9, 2]
print("Input List =",inputList)

# 从列表中获取最大/最大元素
max_element = max(inputList)

# 获取新的空列表以存储不在列表中的元素
newList = []

# 使用for循环从0到max element循环
for i in range(max_element):
   # 检查该数字是否不在给定列表中
   ifi not in inputList:
      # 如果不在给定的列表中,则将其添加到新列表中
      newList.append(i)

# 使用random模块的choice()函数从newList中获取随机数
randomElement = random.choice(newList)

# 打印不在列表中的随机元素
print("不在列表中的随机元素 = ", randomElement)

输出

执行上述程序后,将生成以下输出−

输入列表= [3, 10, 5, 9, 2]
不在列表中的随机元素 = 8

使用random.choice()函数和List Comprehension

算法(步骤)

以下是执行所需任务的算法/步骤 –

  • 从0循环到最大元素,并选择不在列表中的元素使用not in运算符,并使用random.choice()方法随机选择一个元素。

  • 打印不在列表中的随机元素。

示例

以下程序使用random.choice()函数和list comprehension返回不在输入列表中的随机元素 –

# 导入random模块
import random

# 输入列表
inputList = [3, 10, 5, 9, 2]
print("输入列表 =",inputList)
# 从列表中获取最大/最大元素
max_element = max(inputList)

#获取0到max_element中没有出现在列表中的所有数字
#从这些元素中使用choice()函数选择一个随机元素
randomElement = random.choice([e for e in range(max_element) if e not in inputList])

# 打印不在列表中的随机元素
print("不在列表中的随机元素 = ", randomElement)

输出

执行上述程序后,将生成以下输出 –

输入列表 = [3, 10, 5, 9, 2]
不在列表中的随机元素 =  7

使用random.choice()和set()函数

算法(步骤)

以下是执行所需任务的算法/步骤 –

  • 使用 set()函数 (创建一个Set对象。由于项目未排序,因此Set列表将以随机顺序出现。删除所有重复项)和 range()函数 ,获取从输入列表的最低元素到最高元素的数字集。从这个集合中减去输入列表的集合以删除公共元素,然后将其转换为列表并使用random.choice()函数选择一个随机元素。

  • 打印不在列表中的随机元素

示例

以下程序使用random.choice()和set()函数返回python中给定输入列表中没有的随机元素 –

# 导入 random 模块
import random

# 输入列表
inputList = [3, 10, 5, 9, 2]
print("输入列表 = ",inputList)

# 使用 set() 和 range() 函数获取从输入列表最小元素到最大元素之间的数字集合

# 将该集合从输入列表的集合中减去以去除相同的元素
# 将其转换为列表,并从中选择一个随机元素
randomElement = random.choice(list(set(range(min(inputList)+1, max(inputList)))-set(inputList)))

# 打印不在列表中的随机元素
print("不在列表中的随机元素 = ", randomElement)

输出

执行上述程序会生成以下输出-

输入列表 = [3, 10, 5, 9, 2]
不在列表中的随机元素 = 4

使用 random.randrange() 函数

算法(步骤)

执行以下算法/步骤以执行所需任务-

  • 使用 while 循环,通过将条件设置为 True 来无限次运行循环。

  • 使用 randrange() 函数(返回指定范围内的随机数)来获取介于 1 到 100 之间的随机元素。

  • 使用 if 条件语句检查生成的随机元素是否不在列表中,并使用 not 和 in 运算符。

  • 如果条件为 true(也就是找到了不在给定列表中的元素),则使用 break 语句退出循环。

  • 打印不在列表中的随机元素。

示例

以下程序利用 random.randrange() 函数在 python 中返回不在给定输入列表中的随机元素-

# 导入 random 模块
import random

# 输入列表
inputList = [3, 10, 5, 9, 2]
print("输入列表 =", inputList)
# 无限次运行循环
while True:
   # 从 1 到 100 获取随机元素
   randomElement=random.randrange(1, 100)
   # 检查生成的随机元素是否不在列表中
   if randomElement not in inputList:
      # 如果条件为 true(也就是找到了不在给定列表中的元素),则退出循环
      break

# 打印不在列表中的随机元素
print("不在列表中的随机元素 = ", randomElement)

输出

执行上述代码会生成以下输出-

输入列表 = [3, 10, 5, 9, 2]
不在列表中的随机元素 = 96

结论

在本文中,我们学习了如何使用Python的四种不同的方法来选择一个不在给定列表中的随机元素。我们还学习了如何使用set()函数删除重复项。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程