En plongeant dans les profondeurs du module aléatoire de Python, on peut tomber sur le comportement déroutant de random.shuffle( ). Au mépris des attentes, cette fonction semble renvoyer la valeur éthérée None après avoir apparemment mélangé une liste. Pour résoudre cette énigme, embarquons dans un voyage dans le fonctionnement interne de random.shuffle.
Contrairement à la convention de renvoi de la structure de données modifiée, random.shuffle () choisit une voie plus énigmatique. Il transforme silencieusement la liste à laquelle il s’applique, sans aucune preuve tangible de ses actions. Cette altération subtile, connue sous le nom de « modification sur place », est une caractéristique de nombreuses méthodes de l'API Python qui modifient les structures de données. Par conséquent, random.shuffle() renvoie None, laissant derrière lui une liste mélangée sans aucune confirmation explicite.
Pour être témoin du travail insaisissable de random.shuffle(), considérez ce qui suit code :
x = ['foo', 'bar', 'black', 'sheep'] from random import shuffle random.shuffle(x) print(x)
L'exécution de ce code imprimera la liste mélangée, révélant les fruits de l'invisibilité de random.shuffle() travail.
Cependant, si votre désir n'est pas simplement d'assister à la transformation d'une liste mais de créer une nouvelle liste battue, d'autres avenues vous attendent. Random.sample() est prêt à être servi, offrant un moyen de générer une copie mélangée d'une liste existante tout en laissant l'original intact :
shuffled_x = random.sample(x, len(x))
Alternativement, sorted() combiné avec des offres random.random() une autre voie vers une liste mélangée, bien qu'avec un coût de calcul :
shuffled_x = sorted(x, key=lambda k: random.random())
Les deux approches génèrent une copie mélangée de votre liste, vous permettant de manipuler le nouvelle liste sans perturber l'original.
Le comportement particulier de la fonction random.shuffle() peut initialement faire sourciller, mais comprendre sa nature de modification sur place et explorer des approches alternatives pour créer de nouvelles les listes mélangées vous permettent d'exploiter efficacement sa magie aléatoire.
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!