2017-03-13 4 views
0

Je suis assez nouveau pour Python. J'ai une liste contenant plus de listes, mais seulement en deux dimensions (par exemple List [a] [b]). Maintenant pour chaque valeur [a] je veux accéder à une certaine valeur [b] (10 dans ce cas). Pour l'instant, il suffirait d'imprimer chaque valeur List [a] [10]. J'ai essayé:Listes dans une liste

for rec in List: 
    print List[rec][10] 

Cela me donne l'erreur "TypeError: les index de liste doivent être des entiers, pas la liste". Cependant, si j'essaie simplement "print List [0] [10]", cela me donne la valeur que je veux. Dans mon for-Loop n'est pas rec un nombre entier? Comment pourrais-je résoudre ce problème? Informations supplémentaires: J'utilise Python 2.4.3 pour pouvoir utiliser la bibliothèque de fichiers de formes qui me permet d'accéder aux données SIG (ma liste).

+4

Si vous "for" sur une liste, vous obtenez le * * elements ** (donc les sous-listes), pas leurs indices ... –

+1

N'appelez pas votre liste 'List'. 'list' est un mot réservé en Python. – Denziloe

+0

Puisque vous êtes nouveau sur Python, vous devriez vraiment apprendre Python 3, sauf si vous êtes obligé d'utiliser Python 2 pour une raison quelconque. Python 2 a plusieurs bizarreries agaçantes qui ont été corrigées dans Python 3, et Python 2 atteint sa fin de vie en 2020. Si vous avez besoin d'en apprendre davantage sur Python 2, il est généralement préférable d'apprendre Python 3 d'abord Python 2 différences dernières, plutôt que de le faire dans l'autre sens. –

Répondre

0

Vous devez utiliser:

for rec in List: 
    print rec[10] 

ou

for i range(len(List)): 
    print List[i][10] 
+0

Merci, c'était étonnamment facile. Très appréciée! –

+0

'pour i de gamme' – Denziloe

+0

' pour i de gamme (len (Liste)): ' Ou mieux encore, remplacer cette gamme par xrange – Fallen

1
for rec in List: 
    print rec[10] 

devrait fonctionner.

0

rec dans votre cas n'est pas un nombre entier, c'est le premier élément de la liste. Pour l'utiliser comme un entier, vous devez ajouter une plage dans la boucle for, comme "pour rec dans la plage (0, len (Liste))"