Maison  >  Article  >  développement back-end  >  Comment obtenir une liste triée d'entiers aléatoires avec des éléments uniques en utilisant Python ?

Comment obtenir une liste triée d'entiers aléatoires avec des éléments uniques en utilisant Python ?

WBOY
WBOYavant
2023-08-21 20:28:321534parcourir

Comment obtenir une liste triée dentiers aléatoires avec des éléments uniques en utilisant Python ?

La génération de nombres aléatoires est l'une des techniques les plus populaires en programmation, statistiques, modèles d'apprentissage automatique, etc. Générer une liste triée d'entiers aléatoires avec des éléments uniques est un sous-domaine de cette tâche. Cependant, les ordinateurs sont des machines déterministes, donc générer des nombres aléatoires via notre implémentation n'est que parfois une idée sensée. Dans cet article, nous allons explorer comment obtenir une liste triée d'entiers aléatoires avec des éléments uniques à l'aide de Python.

Exemple de fonction utilisant le module aléatoire

La méthode d'échantillonnage génère un échantillon aléatoire de k éléments d'une population donnée. Il faut deux paramètres obligatoires, le premier est la liste des éléments et le second est le nombre d'éléments qui doivent être inclus dans notre exemple de liste.

Grammaire

random.sample(iterable object, k)

La fonction sample accepte deux paramètres obligatoires : l'objet itérable et le nombre d'éléments qui doivent être présents dans le résultat. Il renvoie k éléments d'un objet itérable sous forme de liste.

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

Cette fonction trie les objets itérables. Il prend un objet itérable comme paramètre obligatoire. Nous pouvons également définir la clé de l'élément en utilisant le paramètre key. Nous pouvons également utiliser le paramètre reverse pour renvoyer la forme inverse de l'itérable trié.

La traduction chinoise de

Exemple

est :

Exemple

Dans le code ci-dessous, nous importons d'abord le module aléatoire de Python. Ensuite, nous avons créé la fonction generate_sorted_random_integers, qui accepte trois paramètres, la plage de début, la plage de fin et le nombre d'éléments. Nous créons une liste de plages d'entiers à l'aide de la méthode range, en prenons quelques échantillons à l'aide de la méthode sample et enfin trions le tableau à l'aide de la méthode 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}")

Sortie

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

Utilisation du module Numpy

Numpy est une bibliothèque populaire pour Python utilisée pour les calculs numériques. Il fournit également des fonctions pour créer des nombres aléatoires. Nous pouvons utiliser la méthode de tri pour trier la liste et la méthode de choix pour sélectionner aléatoirement k éléments.

Grammaire

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

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, après avoir importé la bibliothèque Numpy, nous définissons la fonction generate_sorted_random_integers. Cette fonction prend une valeur de début, une valeur de fin et le nombre d'éléments comme paramètres et renvoie une liste ordonnée aléatoirement. Sous la fonction, nous utilisons la fonction range pour générer une séquence, la méthode de choix pour y sélectionner le nombre d'éléments requis, et enfin la méthode de tri pour trier la liste.

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}")

Sortie

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

Utilisez la compréhension et le tri des listes

Les compréhensions de listes sont une technique populaire parmi les développeurs Python. L'avantage de cette approche est que vous pouvez combiner des instructions logiques, des expressions d'itération, des expressions conditionnelles, etc. dans une seule ligne de code et générer les éléments d'une liste basée sur celle-ci. Cela aide à écrire une seule dérivation d’une ligne de code.

La traduction chinoise de

Exemple

est :

Exemple

Dans l'exemple ci-dessous, nous utilisons la compréhension de liste pour créer une liste triée de nombres aléatoires. Nous utilisons la bibliothèque aléatoire de Python pour créer des nombres aléatoires dans la plage souhaitée et utilisons la méthode sorted pour trier la liste des nombres aléatoires. Nous avons appelé la fonction définie par l'utilisateur, transmis les paramètres nécessaires et imprimé le résultat.

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}")

Sortie

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

Utiliser la fonction Lambda

Les fonctions Lambda n'ont pas de nom et elles se comportent comme des fonctions traditionnelles s'il y a moins de lignes de code. Cette fonction peut accepter des paramètres et renvoyer une valeur. Cependant, la fonction n'a pas de nom. En règle générale, nous utilisons des fonctions comme celle-ci lorsque nous devons effectuer certaines opérations rapidement et sommes sûrs qu'elles ne seront pas utilisées ailleurs.

La traduction chinoise de

Exemple

est :

Exemple

Dans le code ci-dessous, nous utilisons la fonction lambda qui prend le début, la fin et le nombre d'éléments comme paramètres. Cette fonction utilise également des compréhensions de liste pour générer les éléments de la liste. Nous utilisons la méthode randint pour générer des nombres aléatoires et la méthode sorted pour trier la liste.

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}")

Sortie

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

Utiliser la fonction Lambda

Pandas est une bibliothèque d'analyse de données populaire en Python. Il possède une fonction intégrée appelée apply, que nous pouvons utiliser pour appliquer certaines opérations à tous les éléments de la liste. Nous pouvons utiliser la bibliothèque aléatoire pour générer des nombres aléatoires et appliquer la méthode pour trier les éléments

Utilisation de la bibliothèque Pandas avec Random

Pandas est une bibliothèque d'analyse de données populaire en Python. Il possède une fonction intégrée appelée apply, que nous pouvons utiliser pour appliquer certaines opérations à tous les éléments de la liste. Nous pouvons utiliser la bibliothèque aléatoire pour générer des nombres aléatoires et appliquer la méthode pour trier les éléments

Grammaire

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.....)

Nous pouvons utiliser la méthode apply sur l'objet dataframe Pandas. Il prend le nom de la fonction comme paramètre obligatoire. Cette fonction est appliquée à tous les éléments du bloc de données. Le paramètre axis définit si l'on souhaite utiliser la fonction sur des lignes ou des colonnes. convert_type est une valeur booléenne indiquant s'il faut convertir le type de données de la série résultante en un type générique déduit de la valeur de retour de la fonction

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函数等。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer