Maison > développement back-end > Tutoriel Python > Pourquoi « random.shuffle » de Python renvoie-t-il « Aucun » lors du mélange d'objets ?

Pourquoi « random.shuffle » de Python renvoie-t-il « Aucun » lors du mélange d'objets ?

Susan Sarandon
Libérer: 2024-12-14 14:36:20
original
628 Les gens l'ont consulté

Why Does Python's `random.shuffle` Return `None` When Shuffling Objects?

Mélanger une liste d'objets

Lorsque vous essayez de mélanger une liste d'objets à l'aide de la fonction random.shuffle en Python, vous pouvez rencontrer le problème de réception d’une sortie Aucun. Contrairement aux listes d'entiers, la lecture aléatoire d'objets nécessite un peu plus de considération.

Comprendre random.shuffle

random.shuffle opère sur des objets mutables en place, ce qui signifie qu'il modifie directement le liste originale. Cette fonction ne renvoie pas la liste mélangée mais modifie plutôt la liste d'entrée. Par conséquent, il renvoie Aucun pour indiquer qu'aucune valeur réelle n'est renvoyée.

Solution

Pour résoudre le problème, assurez-vous que la liste d'entrée contient des objets mutables, comme les listes. Voici un exemple :

from random import shuffle

# Create a list of lists as objects
x = [[i] for i in range(10)]

# Shuffle the list of objects in place
shuffle(x)

# Print the shuffled list
print(x)
Copier après la connexion

Sortie :

[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
Copier après la connexion

En utilisant des listes comme objets, random.shuffle peut modifier efficacement la liste d'origine et fournir la sortie mélangée souhaitée. N'oubliez pas que lorsqu'il s'agit d'objets mutables, il est courant que les fonctions renvoient None après avoir modifié les objets en place.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal