list ( ).copy ( )
DESCRIPTION.
Créer une copie superficielle de la liste.
SYNTAXE.
LST_Destination = LST_Source.copy ( )
LST_Destination = ⇨ nom de la nouvelle liste [ OBLIGATOIRE ]
LST_Source ⇨ nom de la liste à copier [ OBLIGATOIRE ]
.copy ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
REMARQUES.
LST_Source doit être une list ( ) existante et valide, même si elle ne possède aucun item (list ( ) vide).
LST_Destination = LST_Source.copy ( ) équivaut à LST_Destination = LST_Source [ : ]
La syntaxe LST_Destination = LST_Source est erronée car elle ne fait que créer une nouvelle instance (référence) pour l'ancienne list ( ). Toutes modifications de l'une des list ( ) sera aussi faite dans l'autre référence.
Une copie superficielle d'une list ( ) créée une nouvelle list ( ) indépendante de la list ( ) originale. Mais si un, ou des, items de la list ( ) sont des collections (list ( ), tuple ( ), dict ( ), ...), ces items sont toujours liés avec ceux de la list ( ) originale. La modification de l'item dans l'une des instances modifie aussi l'item dans l'autre list ( ). Pour créer des list ( ) totalement indépendantes (copie récursive), il faut utiliser le module copy de la bibliothèque standards.
EXEMPLES.
LST_Lettres = [ "a" , "b" , "d" , "g" , "h" ]
LST_Consonnes = LST_Lettres
LST_Voyelles = LST_Lettres.copy ( )
print ( LST_Consonnes is LST_Lettres ) retourne True
print ( LST_Voyelles is LST_Lettres ) retourne False
print ( LST_Consonnes is LST_Voyelles ) retourne False
LST_Consonnes et LST_Lettres sont bien le même objet alors que LST_Voyelles est un objet différent d'eux.
LST_Consonnes [ 0 ] = 'j'
print ( LST_Lettres ) retourne ['j', 'b', 'd', 'g', 'h']
Les modifications apportées à LST_Consonnes concernent aussi LST_Lettres.
print ( LST_Voyelles ) retourne ['a', 'b', 'd', 'g', 'h']
Les modifications apportées à LST_Consonnes ne concernent pas LST_Voyelles.
LST_Lettres.append ( "k" )
print ( LST_Consonnes ) retourne ['j', 'b', 'd', 'g', 'h', 'k']
Les modifications apportées à LST_Lettres concernent aussi LST_Consonnes.
print ( LST_Voyelles ) retourne ['a', 'b', 'd', 'g', 'h']
Les modifications apportées à LST_Lettres ne concernent pas LST_Voyelles.
LST_Voyelles [ 1 : 5 ] = [ "e" , "i" , "o" , "u" ]
print ( LST_Voyelles ) retourne ['a', 'e', 'i', 'o', 'u']
Seules les valeurs des index des items précisés sont modifié dans LST_Voyelles.
print ( LST_Lettres ) retourne ['j', 'b', 'd', 'g', 'h', 'k']
Les modifications apportées à LST_Voyelles ne concernent pas LST_Lettres.
LST_Lettres et LST_Consonnes sont deux noms d'une même list ( ) alors que LST_Voyelles est une list ( ) différente. Lors de sa création LST_Voyelles a reçu les items de LST_Lettres. Mais il s'agit bien d'une création.
ATTENTION.
LST_Lettres = [ [ "a" , "e" ] , [ "b" , "c" ] ]
LST_Consonnes = LST_Lettres [ 1 ]
LST_Voyelles = LST_Lettres.copy ( )
print ( LST_Consonnes ) retourne ['b', 'c']
print ( LST_Voyelles ) retourne [['a', 'e'], ['b', 'c']]
print ( LST_Consonnes is LST_Lettres ) retourne False
print ( LST_Voyelles is LST_Lettres ) retourne False
print ( LST_Consonnes is LST_Voyelles ) retourne False
LST_Consonnes.extend ( [ "d" , "e" , "f" ] )
print ( LST_Consonnes ) retourne ['b', 'c', 'd', 'e', 'f']
print ( LST_Lettres ) retourne [['a', 'e'], ['b', 'c', 'd', 'e', 'f']]
print ( LST_Voyelles ) retourne [['a', 'e'], ['b', 'c', 'd', 'e', 'f']]
print ( LST_Consonnes is LST_Lettres [ 1 ] ) retourne True
print ( LST_Voyelles [ 1 ] is LST_Lettres [ 1 ] ) retourne True
print ( LST_Consonnes is LST_Voyelles [ 1 ] ) retourne True
Bien que les 3 list ( ) soient des objets différents, leurs items font référence aux mêmes objets. La modification d'un item des ces objets sont appliqués aussi dans les 3 list ( ). Pour créer des list ( ) totalement indépendantes (copie récursive), il faut utiliser le module copy de la bibliothèque standards.
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.