2013-02-11 16 views
21

Dato lists = [['hello'], ['world', 'foo', 'bar']]Python di lista per unirsi lista di liste

Come posso trasformarla in un unico elenco di stringhe?

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

+0

So che posso farlo la strada più lunga utilizzando cicli annidati, ma mi chiedevo se c'è un one-liner per fare il stessa cosa. – congusbongus

risposta

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

Oppure:

import itertools 

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

Mentre la prima scelta sembra più bella secondo me. Usare itertools è MOLTO più veloce. Questa risposta è grande. –

3
from itertools import chain 

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