2012-07-19 15 views
33
Input >> list = [[1,2,3], [6], [3,4,5,6]] 

Output >> [1,2,3,3,4,5,6,6] 

मैं अगर वहाँ इसग्रूवी विधि सूचियों

l = [] 
list.each{ l = l + it } 
println l 

एक डिफ़ॉल्ट ग्रूवी बंद या विधि की तरह से और अधिक सरल कुछ है जानना चाहता हूँ की सूची गठबंधन करने के लिए?

उत्तर

61

कोशिश flatten, अर्थात्:

list.flatten() 

या, उत्पादन आप चाहते हैं पाने के लिए:

list = [[1,2,3], [6], [3,4,5,6]] 

assert list.flatten().sort() == [1,2,3,3,4,5,6,6] 
+0

काम किया! तो कहता है कि मुझे उत्तर स्वीकार करने के लिए 4 और मिनट इंतजार करने की आवश्यकता है :) –

+6

ध्यान दें कि इस के अर्थशास्त्र इस सूची में अलग-अलग परिणामों का उत्पादन करते हुए सूचियों के माध्यम से रिकर्स करते हैं: '[[1,2,3] , [4, [5]], [6]]। Flatten() '। ओपी के concatenation करने का सबसे साफ तरीका 'list.collectMany {it}' है। – Desty

संबंधित मुद्दे