2010-10-21 221 views
6

我遇到了一個小問題。說我有兩個列表:Python:比較列表

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

然後我有一個列表的列表:

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

然後我需要通過list_A和list_B迭代和有效地使用它們的座標。例如,我從列表A和B中選擇第一個數字,它們將是'0'和'2',然後我將它們用作座標:print matrix[0][2]

然後我需要對列表中的第二個數字執行相同的操作A和B以及列表A和B中的第三個數字,不管長列表A和B如何。如何在循環中做到這一點?

回答

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

解決了我的問題類型錯誤太:) – Steven 2010-10-21 10:12:34

0

'zip'函數可能在這裏有一些用處。它將從list_A和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)]