2010-10-21 8 views
6

J'ai rencontré un petit problème. Dire que j'ai deux listes:Python: comparaison de listes

list_A = ['0','1','2'] 
list_B = ['2','0','1'] 

J'ai alors une liste de listes:

matrix = [ 
['56','23','4'], 
['45','5','67'], 
['1','52','22'] 
] 

Il me faut ensuite itérer list_A et list_B et de les utiliser efficacement coordonnées. Par exemple, je prends le premier numéro de la liste A et B qui serait '0' et '2', je les utilise ensuite comme coordonnées: print matrix[0][2]

Je dois ensuite faire la même chose pour le 2ème numéro de la liste A et B et le 3ème nombre dans la liste A et B et ainsi de suite pour toute la longue liste A et B comment serait. Comment faire cela en boucle?

Répondre

8
matrix = [ 
['56','23','4'], 
['45','5','67'], 
['1','52','22'] 
] 

list_A = ['0','1','2'] 
list_B = ['2','0','1'] 

for x in zip(list_A,list_B): 
    a,b=map(int,x) 
    print(matrix[a][b]) 
# 4 
# 45 
# 52 
+0

a résolu mon problème TypeError aussi :) – Steven

0

La fonction 'zip' pourrait être utile ici. Il va générer une liste de paires à partir de list_A et de list_B.

for (x,y) in zip(list_A, list_B): 
    # do something with the coordinates 
2
[matrix[int(a)][int(b)] for (a,b) in zip(list_A, list_B)]