Liste de listes : explication des modifications inattendues dans les sous-listes
En Python, lors de la création d'une liste de listes, l'utilisation de [x] * n sera aboutir à une liste avec plusieurs références à la même liste sous-jacente. Ce comportement peut entraîner des changements inattendus dans toutes les sous-listes lors de la modification des valeurs dans une sous-liste.
Par exemple, considérons le code suivant :
xs = [[1] * 4] * 3
Ce code crée une liste de listes, où chacune la sous-liste fait référence à la même liste sous-jacente de quatre 1. Lorsque nous modifions l'un des éléments de la sous-liste :
xs[0][0] = 5
Les modifications sont reflétées dans toutes les sous-listes. Cela se produit parce que la liste de listes d'origine ne contient que trois références à la même sous-liste sous-jacente, et non trois sous-listes distinctes.
Pour créer des sous-listes distinctes avec des valeurs distinctes, vous pouvez utiliser une compréhension de liste :
xs = [[1] * 4 for _ in range(3)]
Dans ce cas, la compréhension de liste crée une nouvelle liste de quatre 1 pour chaque élément de la nouvelle liste de listes, ce qui donne trois sous-listes distinctes.
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!