2010-10-21 38 views
6

Tôi đã gặp một vấn đề nhỏ. Nói rằng tôi có hai danh sách:Python: So sánh các Danh sách

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

sau đó tôi có một danh sách liệt kê:

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

sau đó tôi cần phải lặp qua list_A và list_B và hiệu quả sử dụng chúng như tọa độ. Ví dụ: tôi lấy số linh sam từ danh sách A và B sẽ là '0' và '2', sau đó tôi sử dụng chúng làm toạ độ: print matrix[0][2]

Sau đó tôi cần thực hiện tương tự cho số thứ 2 trong danh sách A và B và số thứ 3 trong danh sách A và B và vân vân cho danh sách A và B dài bao lâu sẽ như thế nào. Làm thế nào để điều này trong một vòng lặp?

Trả lời

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

Giải Quyết vấn đề TypeError tôi quá :) – Steven

0

Chức năng 'zip' có thể được sử dụng ở đây. Nó sẽ tạo ra một danh sách các cặp từ list_A và 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)] 
Các vấn đề liên quan