📅  最后修改于: 2023-12-03 15:34:08.955000             🧑  作者: Mango
在Python中,有时候我们需要从一个列表中生成一些随机数,但同时又需要确保生成的随机数不等于K。本教程将会教你如何在Python中生成一个列表,并从列表中获取除特定值K之外的随机数。
首先,我们需要生成一个包含随机数的列表。我们可以使用Python内置的模块random来生成一个指定长度和范围的随机数列表。下面是一个生成10个从1到100的随机数列表的代码片段:
import random
lst = []
for i in range(10):
lst.append(random.randint(1,100))
print(lst)
输出:
[82, 51, 15, 95, 73, 16, 32, 59, 66, 47]
接下来,我们需要编写一个函数,用于生成一个除了指定值K之外的随机数。实现方法是在生成随机数时,如果生成的随机数等于K,则反复生成直到生成的随机数不等于K为止。下面是代码实现:
import random
lst = []
for i in range(10):
lst.append(random.randint(1,100))
def random_without_k(lst, K):
while True:
r = random.choice(lst)
if r != K:
return r
result = random_without_k(lst, 50)
print(result)
输出:
72
这里我们生成的列表是lst,K的值为50。运行random_without_k函数之后,返回的随机数是除50之外的随机数。
最终,我们将生成列表和生成除K之外的随机数的代码整合起来,形成如下代码:
import random
def generate_list(length, range_start, range_end):
lst = []
for i in range(length):
lst.append(random.randint(range_start, range_end))
return lst
def random_without_k(lst, K):
while True:
r = random.choice(lst)
if r != K:
return r
lst = generate_list(10, 1, 100)
print("Original list: ", lst)
result = random_without_k(lst, 50)
print("Random number without K: ", result)
输出:
Original list: [9, 46, 74, 37, 99, 1, 71, 5, 79, 87]
Random number without K: 1
这个代码片段可以生成长度为10且范围在1到100之间的随机数列表,并生成一个除50之外的随机数。