2013-02-11 19 views
21

Da lists = [['hello'], ['world', 'foo', 'bar']]Python Liste Verständnis Liste von Listen beizutreten

Wie kann ich, dass in eine einzige Liste von Strings verwandeln?

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

+0

Ich weiß, dass ich es den langen Weg machen kann durch verschachtelte Schleifen verwenden, aber ich frage mich, ob es ein Einzeiler das zu tun gleiche Sache. – congusbongus

Antwort

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

Oder:

import itertools 

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

Während die erste Wahl meiner Meinung nach schöner aussieht. Die Benutzung von iertools ist VIEL schneller. Diese Antwort ist großartig. –

3
from itertools import chain 

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