Maison > développement back-end > Tutoriel Python > Pourquoi « random.shuffle() » de Python renvoie-t-il « None » au lieu de la liste mélangée ?

Pourquoi « random.shuffle() » de Python renvoie-t-il « None » au lieu de la liste mélangée ?

DDD
Libérer: 2024-12-07 15:49:16
original
186 Les gens l'ont consulté

Why does Python's `random.shuffle()` return `None` instead of the shuffled list?

Mélanger une liste d'objets

Une tâche courante en programmation consiste à mélanger une liste d'objets. En Python, il existe une fonction intégrée pour cela : random.shuffle(). Cependant, son comportement peut être inattendu si vous n'êtes pas familier avec ses nuances.

Question

Pourquoi random.shuffle(), lorsqu'il est appelé sur une liste de objets, renvoient None au lieu du mélange list?

Answer

random.shuffle() modifie sa liste d'entrée sur place, ce qui signifie qu'elle ne crée pas une nouvelle liste mais mélange plutôt les éléments de l'existante liste. Par conséquent, il n’a aucune valeur à renvoyer, d’où le résultat None. Ce comportement est cohérent avec la convention Python pour les objets mutables, où les fonctions qui les modifient renvoient généralement Aucun.

Exemple

Pour démontrer cela, considérons le code suivant :

from random import shuffle

l = [[i] for i in range(10)]
shuffle(l)
print(l)
Copier après la connexion

Le code crée une liste de listes et la mélange à l'aide de shuffle(). L'impression de la liste résultante montre qu'elle a été réorganisée avec succès :

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

Dans cet exemple, random.shuffle() a en effet modifié la liste d'origine en place, renvoyant Aucun.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal