2013-02-11 14 views
21

Biorąc dołączyć lists = [['hello'], ['world', 'foo', 'bar']]Python listowego do listy list

Jak przekształcić że na jednej liście ciągów?

combinedLists = ['hello', 'world', 'foo', 'bar']

+0

wiem, że mogę zrobić to długą drogę za pomocą zagnieżdżonych pętli, ale zastanawiałem się, czy istnieje jedna wkładka wykonać ta sama rzecz. – congusbongus

Odpowiedz

59
lists = [['hello'], ['world', 'foo', 'bar']] 
combined = [item for sublist in lists for item in sublist] 

Lub:

import itertools 

lists = [['hello'], ['world', 'foo', 'bar']] 
combined = list(itertools.chain.from_iterable(lists)) 
+1

Podczas pierwszego wyboru wygląda ładniej w mojej opinii. Korzystanie itertools jest DUŻO szybsze. Ta odpowiedź jest świetna. –

3
from itertools import chain 

combined = [['hello'], ['world', 'foo', 'bar']] 
single = [i for i in chain.from_iterable(combined)]