2013-09-21 95 views
14

Tôi đang cố chuyển đổi danh sách danh sách lồng nhau thành danh sách các bộ dữ liệu bằng Python 3.3. Tuy nhiên, có vẻ như tôi không có logic để làm điều đó.Làm thế nào để chuyển đổi danh sách lồng nhau của danh sách thành một danh sách các bộ tuples trong python 3.3?

Các đầu vào trông như sau:

>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']] 

Và ouptput mong muốn sẽ giống như chính xác như sau:

nested_lst_of_tuples = [('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 

Trả lời

22

Chỉ cần sử dụng một danh sách hiểu:

nested_lst_of_tuples = [tuple(l) for l in nested_lst] 

Demo:

>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']] 
>>> [tuple(l) for l in nested_lst] 
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 
2
[tuple(l) for l in nested_lst] 
5

Bạn có thể sử dụng map():

>>> list(map(tuple, [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']])) 
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 

này tương đương với một sự hiểu biết danh sách, trừ map trả về một máy phát điện thay vì một danh sách.