2014-06-13 3 views
1

Je suis en train de créer une liste de listesPython - Liste des listes

A = [[]]*4 

impression A, donne

[[],[],[],[]] 

Alors je les suivantes

A[0].append(1) 

le résultat est dehors

[[1], [1], [1], [1]] 

Je veux que la sortie suivante:

[[1],[],[],[]] 

Tous les conseils pour le faire? Et pourquoi le résultat arrive comme ça?

+0

avez-vous essayé ceci: 'A [[0]] = 1' ou' A [0] [0] = 1'? – angel

+0

Toute autre façon d'y parvenir ??? Comme supposons que je veuille une liste externe avec la taille fixe mais veut développer des listes internes par exemple [[1,2,3], [0], [2,3], 5]. La liste externe est de taille 4, mais les listes internes ont une taille variable ... – zephyr

Répondre

0
A = [[] for x in range(4)] 

Maintenant, je peux facilement faire

A[0].append(10) 

Sa sortie désirée donne des. L'utilisation de la syntaxe de multiplication entraîne la création de 4 références à la même liste.

1

Les références sont juste un autre nom pour une seule et même liste. C'est pourquoi lorsque vous ajoutez quelque chose à l'un d'eux et imprimez des résultats, vous imprimez des références à la même liste.