如何使用Python获取一个排序的随机整数列表,其中元素唯一?

WBOY
WBOY 转载
2023-08-21 20:28:32 920浏览

如何使用Python获取一个排序的随机整数列表,其中元素唯一?

生成随机数是编程、统计、机器学习模型等领域中最受欢迎的技术之一。生成一个具有唯一元素的排序随机整数列表是这个任务的一个子领域。然而,计算机是确定性的机器,所以通过我们的实现生成随机数只是有时候一个明智的想法。在本文中,我们将探讨如何使用Python获取一个具有唯一元素的排序随机整数列表。

使用随机模块的示例函数

抽样方法从给定的总体中生成k个元素的随机样本。它需要两个必需的参数,第一个是元素列表,第二个是我们样本列表中应该包含的元素数量。

语法

random.sample(iterable object, k)

函数sample接受两个必需的参数:可迭代对象和结果中应该存在的元素数量。它将可迭代对象中的k个元素作为列表返回。

sorted(iterable, key=< value of the key > , reverse = <boolean True or False> )

该函数对可迭代对象进行排序。它以可迭代对象作为必需参数。我们还可以使用key参数设置元素的键。我们还可以使用reverse参数返回排序后的可迭代对象的反向形式。

Example

的中文翻译为:

示例

在下面的代码中,我们首先导入了Python的random模块。接下来,我们创建了generate_sorted_random_integers函数,它接受三个参数,分别是起始范围、结束范围和元素数量。我们使用range方法创建了一个整数范围的列表,使用sample方法从中取出一些样本,最后使用sorted方法对数组进行排序。

import random
def generate_sorted_random_integers(start_range, end_range, num_elements):
    random_list = sorted(random.sample(range(start_range, end_range + 1), num_elements))
    return random_list
start_range = 1
end_range = 100
num_elements = 10
random_list = generate_sorted_random_integers(start_range, end_range, num_elements)
print(f"The sorted list of random integers is: {random_list}")

输出

The sorted list of random integers is: [6, 18, 19, 55, 63, 75, 88, 91, 92, 94]

使用Numpy模块

Numpy 是 Python 的一个流行的库,用于数值计算。它还提供了创建随机数的函数。我们可以利用 sort 方法对列表进行排序,利用 choice 方法来随机抽取 k 个元素。

语法

numpy.choice(<array name>, size=<shape of the output array> , replace=
<Boolean True or False>, other parameters....)

Example

的中文翻译为:

示例

在下面的示例中,导入Numpy库后,我们定义了generate_sorted_random_integers函数。该函数以起始值、结束值和元素数量作为参数,并返回一个随机排序的列表。在函数下方,我们使用了range函数生成一个序列,choice方法从中选择所需数量的元素,最后使用sort方法对列表进行排序。

import numpy as np
def generate_sorted_random_integers(start_range, end_range, num_elements):
    random_list = np.sort(np.random.choice(range(start_range, end_range + 1), size=num_elements, replace=False))
    return random_list
start_range = 10
end_range = 100
num_elements = 10
random_list = generate_sorted_random_integers(start_range, end_range, num_elements)
print(f"The sorted list of random integers is: {random_list}")

输出

The sorted list of random integers is: [23 27 61 72 74 79 80 90 96 99]

使用列表推导和排序

列表推导是Python开发人员中流行的技术。这种方法的优势在于可以将逻辑语句、迭代表达式、条件表达式等组合在一行代码中,并根据它生成列表的元素。这有助于编写一行代码的单个推导。

Example

的中文翻译为:

示例

在下面的示例中,我们使用列表推导来创建一个排序的随机数列表。我们使用Python的random库在所需范围内创建随机数,并使用sorted方法对随机数列表进行排序。我们调用了用户定义的函数,传递了必要的参数,并打印了结果。

import random
def generate_sorted_random_integers(start_range, end_range, num_elements):
    random_list = sorted([random.randint(start_range, end_range) for _ in range(num_elements)])
    return random_list
start_range = 10
end_range = 50
num_elements = 10
random_list = generate_sorted_random_integers(start_range, end_range, num_elements)
print(f"The sorted list of random integers is: {random_list}")

输出

The sorted list of random integers is: [12, 13, 15, 16, 16, 25, 28, 29, 47, 49]

使用Lambda函数

Lambda函数没有任何名称,并且如果代码行数较少,它们的行为类似于传统函数。该函数可以接受参数并返回值。然而,该函数没有任何名称。通常,当我们需要快速执行某些操作,并且确信这些操作不会在其他地方使用时,我们会使用这样的函数。

Example

的中文翻译为:

示例

在下面的代码中,我们使用了lambda函数,它以开始、结束和元素数量作为参数。该函数还使用列表推导式生成列表的元素。我们使用randint方法生成随机数,并使用sorted方法对列表进行排序。

import random
generate_sorted_random_integers = lambda start_range, end_range, num_elements: sorted([random.randint(start_range, end_range) for _ in range(num_elements)])
start_range = 1
end_range = 100
num_elements = 10
random_list = generate_sorted_random_integers(start_range, end_range, num_elements)
print(f"The sorted list of random integers is: {random_list}")

输出

The sorted list of random integers is: [7, 14, 32, 46, 55, 68, 79, 84, 88, 90]

使用Lambda函数

Pandas是Python中流行的数据分析库。它有一个内置函数叫做apply,我们可以用它来对所有列表元素应用某些操作。我们可以使用random库生成随机数,并应用该方法对元素进行排序

使用Pandas库与Random

Pandas是Python中流行的数据分析库。它有一个内置函数叫做apply,我们可以用它来对所有列表元素应用某些操作。我们可以使用random库生成随机数,并应用该方法对元素进行排序

语法

DataFrame.apply(<function to apply to the elements>, axis=<0 for rows and 1
for columns> , raw=<boolean True or False> , result_type=None, other
parameters.....)

我们可以在Pandas的数据帧对象上使用apply方法。它以函数的名称作为必需参数。该函数应用于数据帧的所有元素。axis参数定义了我们是要在行还是列上使用该函数。convert_type是一个布尔值,指示是否将结果Series的数据类型转换为从函数的返回值中推断出的通用类型

Example

的中文翻译为:

示例

我们在以下代码中首先导入了Pandas库,并使用pd作为别名。接下来,我们使用DataFrame方法创建了一个名为df的数据帧。我们对数据帧使用了apply方法,并使用generate_sorted_random_integers函数对所有数字进行处理。generate_sorted_random_integers函数使用了sampling方法来随机抽样一些数字,并使用sort方法对数字列表进行排序。

import pandas as pd
import random
df = pd.DataFrame({
    'start_range': [1, 1, 1],
    'end_range': [100, 100, 100],
    'num_elements': [10, 10, 10]
})
def generate_sorted_random_integers(row):
    random_list = random.sample(range(row[0], row[1] + 1), row[2])
    random_list.sort()
    return random_list
random_list = df[['start_range', 'end_range', 'num_elements']].apply(generate_sorted_random_integers, axis=1).tolist()
print(f"A multidimensional sorted list of random integers with unique elements are as follows: {random_list}")

输出

A multidimensional sorted list of random integers with unique elements are
as follows: [[11, 28, 31, 32, 35, 58, 73, 82, 88, 96], [17, 26, 42, 45, 47,
55, 89, 97, 99, 100], [26, 32, 66, 73, 74, 76, 85, 87, 93, 100]]

结论

在这篇文章中,我们了解了如何使用Python获取一个具有唯一元素的随机整数排序列表。random模块是生成随机数的最常用方法,因为它专门为此目的设计。然而,为了生成一个排序列表,我们还需要使用Python中的其他一些方法,比如choice、sample、lambda函数等。

以上就是如何使用Python获取一个排序的随机整数列表,其中元素唯一?的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除