random.shuffle ( )
DESCRIPTION.
Retourne une séquence après avoir modifiée speudo-aléatoirement l'ordre de ses éléments.
SYNTAXE.
random.shuffle ( collection , fonction )
random.shuffle ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
collection ⇨ position de départ [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuté sur item [ optionnel ]
REMARQUES.
collection doit être un objet collection muable valide contenant une collection de valeurs, tel que une list ( ), un tuple ( ), range ( ) ... Si collection est vide Python lèvera une exception.
La méthode random.shuffle ( ) retourne le même objet collection, mais avec un nouvel agencement des ses éléments. L'ancien ordre des éléments est perdu et il n'y a pas de création d'un nouvel objet collection.
Pour mélanger un objet collection immuable et/ou renvoyer une nouvelle list ( ) mélangée, on utilisera la méthode random.sample ( ).
Etant donnée le nombre de permutations permises, un objet collection ayant beaucoup d'éléments peut vite dépasser les capacités mémoires de la machine.
Note : le paramètre fonction est supprimé depuis la version Python 3.9.
fonction peut être : une fonction, méthode, ou même un appelable. fonction doit être écrite sans parenthèse ni arguments. Si un ou des arguments doivent être notifiés pour le traitement des éléments, il faut utiliser un fonction anonyme, lambda. fonction doit retourné un float ( ) compris entre 0.0, inclus et 1.0, exclus. Quelque soit la valeur retournée par fonction, la valeur de l'élément de collection change pas. Si fonction retourne toujours le même float ( ), la méthode random.shuffle ( ) donnera toujours le même résultat. Si fonction est absent, c'est la méthode random.random ( ) qui sera utilisée.
EXEMPLES.
1. Utilisation générale.
import random
LST_Couleurs = [ "noir" , "rouge" , "vert" , "jaune" , "bleu" , "fushia" , "cyan" , "blanc" ]
print ( LST_Couleurs )
print ( )
for kmelange in range ( 10 ) :
random.shuffle ( LST_Couleurs )
print ( LST_Couleurs )
retourne, par exemple :
['noir', 'rouge', 'vert', 'jaune', 'bleu', 'fushia', 'cyan', 'blanc']
['vert', 'noir', 'fushia', 'cyan', 'blanc', 'rouge', 'bleu', 'jaune']
['cyan', 'vert', 'blanc', 'bleu', 'jaune', 'noir', 'fushia', 'rouge']
['blanc', 'bleu', 'cyan', 'noir', 'fushia', 'rouge', 'vert', 'jaune']
['bleu', 'fushia', 'blanc', 'cyan', 'noir', 'rouge', 'jaune', 'vert']
['noir', 'jaune', 'bleu', 'fushia', 'blanc', 'rouge', 'vert', 'cyan']
['fushia', 'noir', 'bleu', 'jaune', 'cyan', 'blanc', 'rouge', 'vert']
['rouge', 'jaune', 'blanc', 'cyan', 'fushia', 'vert', 'noir', 'bleu']
['bleu', 'vert', 'fushia', 'cyan', 'rouge', 'noir', 'jaune', 'blanc']
['cyan', 'jaune', 'fushia', 'noir', 'bleu', 'rouge', 'blanc', 'vert']
['vert', 'noir', 'cyan', 'rouge', 'jaune', 'bleu', 'blanc', 'fushia']
Les retours sont à chaque tirages différents.
2. Mélanger un jeu de cartes.
import random
TPL_Couleurs = ( "Coeur" , "Carreau" , "Pique" , "Tréffle" )
TPL_Figures = ( "Roi" , "Dame" , "Valet" , "10" , "9" , "8" , "7" , "6" , "5" , "4" , "3" , "2" ,"As" )
LST_Talon = [ f"{ figure } de { couleur }." for couleur in TPL_Couleurs for figure in TPL_Figures ]
print ( "Avant le mélange : " )
print ( LST_Talon )
print ( )
random.shuffle ( LST_Talon )
print ( "Après le mélange : " )
print ( LST_Talon )
retourne, par exemple :
Avant le mélange :
['Roi de Coeur.', 'Dame de Coeur.', 'Valet de Coeur.', '10 de Coeur.', '9 de Coeur.', '8 de Coeur.', '7 de Coeur.', '6 de Coeur.', '5 de Coeur.', '4 de Coeur.', '3 de Coeur.', '2 de Coeur.', 'As de Coeur.', 'Roi de Carreau.', 'Dame de Carreau.', 'Valet de Carreau.', '10 de Carreau.', '9 de Carreau.', '8 de Carreau.', '7 de Carreau.', '6 de Carreau.', '5 de Carreau.', '4 de Carreau.', '3 de Carreau.', '2 de Carreau.', 'As de Carreau.', 'Roi de Pique.', 'Dame de Pique.', 'Valet de Pique.', '10 de Pique.', '9 de Pique.', '8 de Pique.', '7 de Pique.', '6 de Pique.', '5 de Pique.', '4 de Pique.', '3 de Pique.', '2 de Pique.', 'As de Pique.', 'Roi de Tréffle.', 'Dame de Tréffle.', 'Valet de Tréffle.', '10 de Tréffle.', '9 de Tréffle.', '8 de Tréffle.', '7 de Tréffle.', '6 de Tréffle.', '5 de Tréffle.', '4 de Tréffle.', '3 de Tréffle.', '2 de Tréffle.', 'As de Tréffle.']
Après le mélange :
['As de Carreau.', 'Valet de Pique.', 'As de Coeur.', '10 de Carreau.', 'As de Pique.', '2 de Pique.', '7 de Coeur.', '10 de Pique.', '9 de Tréffle.', '9 de Pique.', '2 de Carreau.', '7 de Pique.', '6 de Carreau.', '3 de Coeur.', '3 de Tréffle.', '8 de Pique.', '8 de Coeur.', '2 de Tréffle.', 'Valet de Carreau.', '4 de Carreau.', '7 de Carreau.', '8 de Carreau.', '10 de Tréffle.', '4 de Coeur.', '5 de Pique.', '6 de Tréffle.', 'Roi de Tréffle.', 'As de Tréffle.', 'Dame de Carreau.', 'Roi de Pique.', '3 de Pique.', '2 de Coeur.', 'Dame de Coeur.', '5 de Carreau.', '3 de Carreau.', 'Roi de Coeur.', 'Valet de Tréffle.', '9 de Coeur.', 'Roi de Carreau.', 'Dame de Tréffle.', '6 de Coeur.', '4 de Pique.', '9 de Carreau.', '10 de Coeur.', '6 de Pique.', '4 de Tréffle.', '5 de Tréffle.', '8 de Tréffle.', '7 de Tréffle.', 'Valet de Coeur.', '5 de Coeur.', 'Dame de Pique.']
Le jeu de carte est mélangé.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.