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
DDDoriginal
2024-12-07 15:49:16191parcourir

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)

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]]

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!

Déclaration:
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