Maison > développement back-end > Tutoriel Python > Pourquoi « random.shuffle » de Python renvoie-t-il « Aucun » ?

Pourquoi « random.shuffle » de Python renvoie-t-il « Aucun » ?

Patricia Arquette
Libérer: 2024-12-09 09:20:07
original
183 Les gens l'ont consulté

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

Le mélange aléatoire de Python : pourquoi le retour non apparent ?

Lors de l'utilisation de la fonction random.shuffle de Python, on peut être perplexe de le voir retourner Aucun. Ce comportement découle de sa nature sur place.

Contrairement aux fonctions qui renvoient la structure de données transformée après modifications, random.shuffle modifie directement la liste d'entrée. Par conséquent, il renvoie None pour indiquer qu'aucune valeur explicite n'est renvoyée.

Pour illustrer, considérons le code suivant :

x = ['foo', 'bar', 'black', 'sheep']
random.shuffle(x)
print(x)
Copier après la connexion

Lors de l'exécution de ce code, la liste x sera mélangée dans -place, mais la fonction random.shuffle elle-même ne renverra aucune valeur. Par conséquent, l'instruction d'impression affichera la liste maintenant mélangée.

Si vous désirez une nouvelle liste mélangée sans modifier l'original, vous pouvez utiliser des méthodes alternatives :

  • random.sample(x, len(x)): Crée une nouvelle liste mélangée aléatoirement en échantillonnant les valeurs de l'original list.
  • shuffled = sorted(x, key=lambda k: random.random()): Utilise le tri avec une clé aléatoire pour générer une nouvelle liste mélangée.

Comprenez que même si random.sample a une complexité O(N), sorted a une complexité O(N log N) en raison du tri sous-jacent opération.

En comprenant le comportement sur place de random.shuffle et en utilisant des méthodes alternatives si nécessaire, vous pouvez contrôler efficacement la façon dont vous gérez les opérations de brassage de listes en Python.

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