2016-05-01 22 views
5

Tôi tự hỏi nếu có một cách dễ dàng để làm như sau trong Python 3.x. Nói rằng tôi có hai danh sách có cấu trúc như sau:Danh sách zip các bộ dữ liệu có danh sách phẳng

list_a = [(1,2), (1,2), (1,2), ...] 
list_b = [3, 3, 3, ...] 

là gì cách đơn giản nhất để tạo ra một máy phát điện (ở đây đại diện bằng cách gọi một hàm funky_zip) mà sẽ cho phép tôi lặp thông qua hai danh sách này như sau:

>>> for a, b, c, in funky_zip(list_a, list_b): 
>>>  print(a, b, c) 
... 
1 2 3 
1 2 3 
1 2 3 
# and so on 

tôi chỉ có thể làm

for aa, b in zip(list_a, list_b): 
    print(aa[0], aa[1], b) 

nhưng tôi tự hỏi nếu có một cách tốt đẹp để làm điều này mà không cần phải giải nén các tuples. Cảm ơn!

Trả lời

7

Bạn chỉ cần ngoặc:

list_a = [(1,2), (1,2), (1,2)] 
list_b = [3, 3, 3] 
for (a, b), c in zip(list_a, list_b): 
    print(a, b, c) 

Kết quả:

1 2 3 
1 2 3 
1 2 3 
+0

OMG haha. Không biết Python có thể làm điều đó! Cảm ơn –

+0

@ C.Windolf Lưu ý, điều này cũng hoạt động ở Pyton 2.7. –

Các vấn đề liên quan