2013-02-11 26 views
21

की सूची को देखते हुए शामिल होने के लिए lists = [['hello'], ['world', 'foo', 'bar']]अजगर सूची समझ सूचियों

मैं कैसे तार की एक सूची में बदलना है कि?

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

+0

मैं जानता हूँ कि मैं नेस्टेड छोरों का उपयोग करके इसे लंबा रास्ता तय कर सकते हैं, लेकिन वहाँ है कि अगर एक एक लाइनर करने के लिए मैं सोच रहा था वही चीज। – congusbongus

उत्तर

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

या:

import itertools 

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

जबकि पहली पसंद मेरी राय में अच्छी लगती है। Itertools का उपयोग बहुत तेज है। यह जवाब बहुत अच्छा है। –

3
from itertools import chain 

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