पायथन में एक पंक्ति में कई वस्तुओं को कैसे जोड़ा जाए


91

मेरे पास है:

count = 0
i = 0
while count < len(mylist):
    if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
        print mylist[i + 1], mylist[i + 2]
    newlist.append(mylist[i + 1])
    newlist.append(mylist[i + 2])
    newlist.append(mylist[i + 7])
    newlist.append(mylist[i + 8])
    newlist.append(mylist[i + 9])
    newlist.append(mylist[i + 10])
    newlist.append(mylist[i + 13])
    newlist.append(mylist[i + 14])
    newlist.append(mylist[i + 19])
    newlist.append(mylist[i + 20])
    newlist.append(mylist[i + 21])
    newlist.append(mylist[i + 22])
    count = count + 1
    i = i + 12

मैं newlist.append()कुछ बयानों में बयान देना चाहता था ।


यदि आप अलग-अलग परिणाम प्राप्त करते हैं तो स्पष्ट रूप से यह समान नहीं है।
— JJJ

यह अमान्य सिंटैक्स है।
— टेरीजा

4
अपनी वस्तुओं को सूचियों के रूप में मान लेने पर, आपका कोड मान्य पायथन नहीं है जैसा कि आप []इसके बजाय उपयोग कर रहे हैं ()। कृपया वास्तविक कार्य कोड पोस्ट करें।
— ब्रेनबार

जवाबों:


227

नहीं, पूरे अनुक्रम को लागू करने की विधि है list.extend()।

>>> L = [1, 2]
>>> L.extend((3, 4, 5))
>>> L
[1, 2, 3, 4, 5]

'परिशिष्ट' को 'परिशिष्ट' के रूप में सम्मिलित करें, लेकिन सूची की शुरुआत में जोड़ता है। क्या किसी सूची की शुरुआत में कई मूल्यों को जोड़ने का एक कार्य है?
— गौरैया

@ स्पर: नहीं। स्लाइस-असाइन करें।
— इग्नासियो वाज़केज़-अब्राम्स

क्या आपको एक सूची होने के लिए दूसरे इनपुट की आवश्यकता है या क्या यह प्रत्येक तत्व अल्पविराम द्वारा अलग किया जा सकता है?
— चार्ली पार्कर

@CharlieParker: तर्क list.extend()एक चलने योग्य होना चाहिए।
— इग्नासियो वाज़केज़-अब्राम्स

5

नहीं।

सबसे पहले, appendएक फ़ंक्शन है, इसलिए आप नहीं लिख सकते append[i+1:i+4]क्योंकि आप एक चीज़ का एक टुकड़ा प्राप्त करने की कोशिश कर रहे हैं जो अनुक्रम नहीं है। (आप इसका एक तत्व नहीं प्राप्त कर सकते हैं, या तो: append[i+1]एक ही कारण के लिए गलत है।) जब आप किसी फ़ंक्शन को कॉल करते हैं, तो तर्क कोष्ठक में जाता है , अर्थात गोल वाले:() :।

दूसरा, आप जो करने की कोशिश कर रहे हैं वह है "एक अनुक्रम लें, और इस मूल अनुक्रम में, इस अन्य अनुक्रम के अंत में हर तत्व को डालें"। वह मंत्रमुग्ध है extend। append"इस चीज़ को लें, और इसे सूची के अंत में एक आइटम के रूप में रखें , भले ही यह एक सूची भी हो "। (याद रखें कि एक सूची एक प्रकार का अनुक्रम है।)

लेकिन फिर, आपको यह पता होना चाहिए कि i+1:i+4एक विशेष निर्माण है जो केवल वर्ग कोष्ठक (एक अनुक्रम से एक टुकड़ा पाने के लिए) और ब्रेसिज़ (एक dictवस्तु बनाने के लिए) के अंदर दिखाई देता है । आप इसे किसी फ़ंक्शन में पास नहीं कर सकते। तो आप extendउस के साथ नहीं कर सकते । आपको उन मूल्यों का एक क्रम बनाने की आवश्यकता है, और ऐसा करने का प्राकृतिक तरीका rangeफ़ंक्शन के साथ है ।



2

इसे इस्तेमाल करो :

#Inputs
L1 = [1, 2]
L2 = [3,4,5]

#Code
L1+L2

#Output
[1, 2, 3, 4, 5]

+ (+) ऑपरेटर का उपयोग करके आप कई एपेंड को छोड़ सकते हैं और ऑपरेटर को कोड की सिर्फ एक पंक्ति में बढ़ा सकते हैं और यह L1 + L2 + L3 + L4 ....... आदि द्वारा सूचियों के दो से अधिक के लिए मान्य है।

हैप्पी लर्निंग ... :)


1
mylist = [1,2,3]

def multiple_appends(listname, *element):
    listname.extend(element)

multiple_appends(mylist, 4, 5, "string", False)
print(mylist)

उत्पादन:

[1, 2, 3, 4, 5, 'string', False]

1

पाश के लिए उपयोग करें। इस तरह:

for x in [1,2,7,8,9,10,13,14,19,20,21,22]:
    new_list.append(my_list[i + x])
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.