📜  Python – 生成列表中除 K 之外的随机数(1)

📅  最后修改于: 2023-12-03 15:34:08.955000             🧑  作者: Mango

Python - 生成列表中除 K 之外的随机数

在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,则反复生成直到生成的随机数不等于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之外的随机数。