2013-01-03 27 views
14

मेरे पास सूचियों का एक समूह है जो मैं एक सूची में जोड़ना चाहता हूं जो कि एक प्रोग्राम में "मुख्य" सूची है जो मैं लिखने की कोशिश कर रहा हूं। क्या 10 की बजाय कोड की एक पंक्ति में ऐसा करने का कोई तरीका है?एक साथ कई सूचियों को जोड़ना संभव है? (पायथन)

x = [1, 2, 3] 
y = [4, 5, 6] 
z = [7, 8, 9] 

और वाई और एक्स के लिए z संलग्न करना चाहते हैं: तो मैं पता नहीं ...

मेरे सवाल, क्या हुआ अगर मैं इन सूचियों था की बेहतर तस्वीर के लिए है मैं अभी शुरुआत कर रहा हूँ। करने के बजाय:

x.append(y) 
x.append(z) 

क्या कोड की एक पंक्ति में ऐसा करने का कोई तरीका है? मैंने पहले ही कोशिश की है:

x.append(y, z) 

और यह काम नहीं करेगा।

+2

क्या आप वास्तव में '.append', या' .extend' चाहते हैं? क्या आप अंतर समझते हैं? –

+0

आप किस आउटपुट की अपेक्षा करते हैं? – Volatility

+0

नहीं, मैंने कभी नहीं देखा है। पहले आगे बढ़ो, यह क्या करता है? –

उत्तर

26
x.extend(y+z) 

क्या आप

या

x += y+z 

या यहाँ तक कि

x = x+y+z 
+3

ध्यान दें कि आखिरी व्यक्ति अलग-अलग है - आप एक नई सूची बना रहे हैं और इसे 'x' में निर्दिष्ट कर रहे हैं, क्योंकि 'x' को बदलने के विरोध में। –

+0

मैंने कोशिश की .extend और यह पूरी तरह से काम किया। सहायता के लिए धन्यवाद। –

+0

विस्तार विधि मेरे लिए कोई नहीं लौटती रहती है। – zakdances

14

मेरी टिप्पणी को विस्तृत करना चाहते हैं क्या करना चाहिए

In [1]: x = [1, 2, 3] 
In [2]: y = [4, 5, 6] 
In [3]: z = [7, 8, 9] 
In [4]: from itertools import chain 
In [5]: print list(chain(x,y,z)) 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
+0

Iertotools विकल्प का सरल रूप जो मुझे उपयोगी मिला: 'itertools.chain ([1, 2, 3], [4, 5, 6], [7, 8 , 9]) '=' [1, 2, 3, 4, 5, 6, 7, 8, 9] ' – NuclearPeon

0

ऊपर जवाब देने के लिए बराबर है, लेकिन पर्याप्त रूप से अलग लायक एक उल्लेख होने के लिए:

my_map = { 
    'foo': ['a', 1, 2], 
    'bar': ['b', '2', 'c'], 
    'baz': ['d', 'e', 'f'], 
} 
list(itertools.chain(*my_map.values())) 
['d', 'e', 'f', 'a', 1, 2, 'b', '2', 'c'] 
ऊपर अभिव्यक्ति में

, * श्रृंखला के लिए args के रूप में परिणाम groking के लिए महत्वपूर्ण है, इस से पहले श्रृंखला (एक्स, वाई रूप में ही है, जेड)। साथ ही, परिणाम हैश आदेश दिया गया है।

3

आप शुरू मूल्य (खाली सूची) के साथ sum समारोह का उपयोग कर सकते संकेत दिया:

a = sum([x, y, z], []) 

यह विशेष रूप से अधिक उपयुक्त है अगर आप सूचियों का एक मनमाना संख्या संलग्न करना चाहते हैं।