जवाबों:
append
: अंत में वस्तु को जोड़ता है।
x = [1, 2, 3]
x.append([4, 5])
print (x)
आपको देता है: [1, 2, 3, [4, 5]]
extend
: पुनरावृति से तत्वों को जोड़कर सूची का विस्तार करता है।
x = [1, 2, 3]
x.extend([4, 5])
print (x)
आपको देता है: [1, 2, 3, 4, 5]
x + [4, 5]
आपको एक नई सूची सौंपी गई है x.extend()
जो मूल सूची को बदल देती है। मैं यहाँ नीचे अपने जवाब में विस्तार से बताता हूं।
x += [4,5]
।
append
है वस्तु । यदि आप उपयोग करने का प्रयास करते हैं extend
और आप एक शब्दकोश में पास करते हैं , तो यह कुंजी को जोड़ देगा , और सरणी के अंत में पूरे हैश नहीं।
append
एक सूची में एक तत्व जोड़ता है, और extend
पहली सूची को किसी अन्य सूची (या किसी अन्य पुनरावृत्ति, जरूरी नहीं कि सूची के साथ) में सम्मिलित करता है।
>>> li = ['a', 'b', 'mpilgrim', 'z', 'example']
>>> li
['a', 'b', 'mpilgrim', 'z', 'example']
>>> li.append("new")
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'new']
>>> li.append(["new", 2])
>>> li
['a', 'b', 'mpilgrim', 'z', 'example', 'new', ['new', 2]]
>>> li.insert(2, "new")
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', ['new', 2]]
>>> li.extend(["two", "elements"])
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'example', 'new', ['new', 2], 'two', 'elements']
सूची के तरीकों को बढ़ाने और बढ़ाने के बीच क्या अंतर है?
append
किसी सूची के अंत में एकल तत्व के रूप में अपना तर्क जोड़ता है। सूची की लंबाई अपने आप बढ़ जाएगी।extend
सूची में प्रत्येक तत्व को सूची में जोड़ते हुए अपने तर्क पर पुनरावृत्ति करता है। सूची की लंबाई बढ़ जाएगी, हालांकि कई तत्व पुनरावृत्ति तर्क में थे।append
list.append
विधि सूची के अंत में एक वस्तु जोड़ देता है।
my_list.append(object)
जो भी वस्तु है, चाहे एक संख्या, एक स्ट्रिंग, एक अन्य सूची, या कुछ और, यह my_list
सूची में एकल प्रविष्टि के अंत में जोड़ा जाता है ।
>>> my_list
['foo', 'bar']
>>> my_list.append('baz')
>>> my_list
['foo', 'bar', 'baz']
इसलिए ध्यान रखें कि एक सूची एक वस्तु है। यदि आप किसी सूची में किसी अन्य सूची को जोड़ते हैं, तो सूची के अंत में पहली सूची एक ही वस्तु होगी (जो आप चाहते हैं वह नहीं हो सकती):
>>> another_list = [1, 2, 3]
>>> my_list.append(another_list)
>>> my_list
['foo', 'bar', 'baz', [1, 2, 3]]
#^^^^^^^^^--- single item at the end of the list.
extend
list.extend
विधि एक iterable से तत्वों जोड़कर एक सूची लागू होता है:
my_list.extend(iterable)
तो विस्तार के साथ, चलने योग्य के प्रत्येक तत्व को सूची में जोड़ा जाता है। उदाहरण के लिए:
>>> my_list
['foo', 'bar']
>>> another_list = [1, 2, 3]
>>> my_list.extend(another_list)
>>> my_list
['foo', 'bar', 1, 2, 3]
ध्यान रखें कि एक स्ट्रिंग एक चलने योग्य है, इसलिए यदि आप एक स्ट्रिंग के साथ एक सूची का विस्तार करते हैं, तो आप प्रत्येक वर्ण को जोड़ देंगे जैसे कि आप स्ट्रिंग पर पुनरावृति करते हैं (जो आप चाहते हैं वह नहीं हो सकता है):
>>> my_list.extend('baz')
>>> my_list
['foo', 'bar', 1, 2, 3, 'b', 'a', 'z']
__add__
( +
) और __iadd__
( +=
)दोनों +
और +=
ऑपरेटरों के लिए परिभाषित कर रहे हैं list
। वे विस्तार करने के लिए शब्दार्थ के समान हैं।
my_list + another_list
स्मृति में एक तीसरी सूची बनाता है, इसलिए आप इसका परिणाम वापस कर सकते हैं, लेकिन इसके लिए आवश्यक है कि दूसरी पुनरावृत्ति एक सूची हो।
my_list += another_list
संशोधित सूची में जगह (यह है यथा-स्थान ऑपरेटर, और सूचियों अस्थायी वस्तुओं, के रूप में हमने देखा है) तो यह एक नई सूची बनाने नहीं करता है। यह विस्तार की तरह भी काम करता है, इसमें दूसरी पुनरावृत्ति किसी भी प्रकार की चलने वाली हो सकती है।
भ्रमित मत my_list = my_list + another_list
हो +=
- इसके बराबर नहीं है - यह आपको my_list को सौंपी गई एक नई सूची देता है।
परिशिष्ट में निरंतर समय की जटिलता है , ओ (1)।
एक्सटेंड में समय की जटिलता है, ओ (के)।
append
जटिलता को जोड़ने के लिए कई कॉल्स के माध्यम से परिवर्तन करना, इसे विस्तार के समतुल्य बनाना, और जब से सी में पुनरावृत्ति को लागू किया जाता है, तब यह हमेशा तेज़ होगा यदि आप किसी सूची में से पुनरावृत्त वस्तुओं को जोड़ना चाहते हैं।
आपको आश्चर्य हो सकता है कि अधिक प्रदर्शन करने वाला क्या है, क्योंकि विस्तार के समान परिणाम प्राप्त करने के लिए एपेंड का उपयोग किया जा सकता है। निम्नलिखित कार्य समान कार्य करते हैं:
def append(alist, iterable):
for item in iterable:
alist.append(item)
def extend(alist, iterable):
alist.extend(iterable)
तो चलिए समय निकालते हैं:
import timeit
>>> min(timeit.repeat(lambda: append([], "abcdefghijklmnopqrstuvwxyz")))
2.867846965789795
>>> min(timeit.repeat(lambda: extend([], "abcdefghijklmnopqrstuvwxyz")))
0.8060121536254883
एक टिप्पणीकार ने कहा:
बिल्कुल सही जवाब, मैं केवल एक तत्व को जोड़ने की तुलना करने के समय को याद करता हूं
शब्दार्थ सही ढंग से करो। यदि आप एक पुनरावृत्त में सभी तत्वों को जोड़ना चाहते हैं, तो उपयोग करें extend
। यदि आप केवल एक तत्व जोड़ रहे हैं, तो उपयोग करें append
।
ठीक है, तो चलिए देखते हैं कि समय में यह कैसे काम करता है:
def append_one(a_list, element):
a_list.append(element)
def extend_one(a_list, element):
"""creating a new list is semantically the most direct
way to create an iterable to give to extend"""
a_list.extend([element])
import timeit
और हम देखते हैं कि विस्तार का उपयोग करने के लिए एक चलने योग्य बनाने के लिए हमारे रास्ते से बाहर जाना समय की एक (मामूली) बर्बादी है:
>>> min(timeit.repeat(lambda: append_one([], 0)))
0.2082819009956438
>>> min(timeit.repeat(lambda: extend_one([], 0)))
0.2397019260097295
हम इस से सीखते हैं कि extend
जब हमारे पास केवल एक तत्व को जोड़ने के लिए उपयोग करने से कुछ नहीं होता है।
इसके अलावा, ये समय उतना महत्वपूर्ण नहीं है। मैं उन्हें सिर्फ यह बताने के लिए दिखा रहा हूं कि पायथन में, शब्द को सही तरीके से करने का अधिकार सही तरीके से कर रहा है ।
यह बोधगम्य है कि आप दो तुलनीय परिचालनों पर समय का परीक्षण कर सकते हैं और एक अस्पष्ट या उलटा परिणाम प्राप्त कर सकते हैं। बस शब्दार्थ को सही करने पर ध्यान दें।
हम देखते हैं कि extend
शब्दार्थ स्पष्ट है, और यह बहुत तेजी से चल सकता है append
, जब आप किसी सूची में प्रत्येक तत्व को पुनरावृत्त करने का इरादा रखते हैं।
यदि आपके पास सूची में जोड़ने के लिए केवल एक ही तत्व (एक चलने योग्य नहीं है) का उपयोग करें append
।
ex1 = 0
और ex2 = [0]
) के रूप में बनाएं और इन चर को पास करें।
l1 += l2
बनाम प्रदर्शन के बारे में क्या l1.extend(l2)
?
l1 += l2
और l1.extend(l2)
अंततः एक ही कोड ( list_extend
फ़ंक्शन में listobject.c
) निष्पादित करते हैं । केवल अंतर हैं: 1. +=
reassigns l1
(खुद के लिए list
s, लेकिन reassignment अपरिवर्तनीय प्रकारों का समर्थन करता है जो बाद में एक ही वस्तु नहीं हैं), जो इसे अवैध बनाता है यदि l1
वास्तव में एक अपरिवर्तनीय वस्तु की विशेषता है; उदाहरण के लिए, t = ([],)
, t[0] += lst
असफल होता है, जबकि t[0].extend(lst)
काम करेगा। 2. l1 += l2
समर्पित बायोटेक का उपयोग करता है, जबकि l1.extend(l2)
सामान्यीकृत विधि प्रेषण का उपयोग करता है; यह +=
तेजी से बनाता है extend
।
+=
पुनर्मूल्यांकन l1
का मतलब यह है कि कुछ मामलों में, धीमी गति से प्रेषण extend
आंशिक रूप से या पूर्ण रूप से बाएं हाथ की ओर वापस असाइन नहीं किया जाता है। उदाहरण के लिए यदि list
एक वस्तु की एक विशेषता है, self.l1 += l2
और self.l1.extend(l2)
मेरी अजगर 3.6 स्थापित पर समान प्रदर्शन किया है, बस क्योंकि वास्तविक संचालन और अधिक की तरह है self.l1 = self.l1.__iadd__(l2)
, जिसका अर्थ है कि यह एक मामूली महंगा करनी होगी STORE_ATTR
कि self.l1.extend(l2)
करने के लिए नहीं है।
+=
यह सिर्फ उपयोग कर रहा है STORE_FAST
, जो सुपर सस्ता है), जहां जोड़ा जा रहा मूल्य list
इसमें एक आइटम के साथ मौजूदा है, ऑपरेशन के साथ 1000 बार दोहराया गया, +=
औसतन लगभग 33 एनएस लिया। , जबकि extend
78 ns, 45 ns का अंतर लिया। यदि l1
एक वैश्विक (अधिक महंगी की आवश्यकता है STORE_GLOBAL
), तो अंतर 17 एनएस तक पहुंच जाता है। यदि l1
वास्तव में local.l1
(और भी अधिक महंगी की आवश्यकता होती है STORE_ATTR
), के बीच कोई सार्थक अंतर नहीं है +=
और extend
(लगभग समान समरूपता; extend
कभी-कभी जीतता है)।
append
एकल तत्व को जोड़ता है। extend
तत्वों की एक सूची को जोड़ता है।
ध्यान दें कि यदि आप एक सूची को पास करने के लिए, यह अभी भी एक तत्व जोड़ता है:
>>> a = [1, 2, 3]
>>> a.append([4, 5, 6])
>>> a
[1, 2, 3, [4, 5, 6]]
परिशिष्ट के साथ आप एक एकल तत्व को जोड़ सकते हैं जो सूची का विस्तार करेगा:
>>> a = [1,2]
>>> a.append(3)
>>> a
[1,2,3]
यदि आप एक से अधिक तत्वों का विस्तार करना चाहते हैं, तो आपको एक्सटेंशन का उपयोग करना चाहिए, क्योंकि आप केवल एक ही एलिमेंट या एक तत्व की सूची को जोड़ सकते हैं:
>>> a.append([4,5])
>>> a
>>> [1,2,3,[4,5]]
ताकि आपको नेस्टेड लिस्ट मिल जाए
विस्तार के साथ, आप इस तरह एक भी तत्व का विस्तार कर सकते हैं
>>> a = [1,2]
>>> a.extend([3])
>>> a
[1,2,3]
या, अलग-अलग, एपेंड से, सूची को मूल एक में सूचीबद्ध किए बिना एक समय में अधिक तत्वों का विस्तार करें (यह नाम का कारण है)
>>> a.extend([4,5,6])
>>> a
[1,2,3,4,5,6]
एपेंड और विस्तारित दोनों सूची के अंत में एक तत्व जोड़ सकते हैं, हालांकि एपेंड सरल है।
>>> x = [1,2]
>>> x.append(3)
>>> x
[1,2,3]
>>> x = [1,2]
>>> x.extend([3])
>>> x
[1,2,3]
यदि आप एक से अधिक तत्वों के लिए परिशिष्ट का उपयोग करते हैं, तो आपको तर्कों के रूप में तत्वों की एक सूची पास करनी होगी और आपको एक NESTED सूची प्राप्त होगी!
>>> x = [1,2]
>>> x.append([3,4])
>>> x
[1,2,[3,4]]
विस्तार के साथ, इसके बजाय, आप एक तर्क के रूप में एक सूची पास करते हैं, लेकिन आप नए तत्व के साथ एक सूची प्राप्त करेंगे जो पुराने में नेस्टेड नहीं है।
>>> z = [1,2]
>>> z.extend([3,4])
>>> z
[1,2,3,4]
इसलिए, अधिक तत्वों के साथ, आप अधिक वस्तुओं के साथ एक सूची प्राप्त करने के लिए विस्तार का उपयोग करेंगे। हालाँकि, किसी सूची को जोड़ने से सूची में और तत्व नहीं जुड़ेंगे, लेकिन एक तत्व एक नेस्टेड सूची है जैसा कि आप कोड के आउटपुट में स्पष्ट रूप से देख सकते हैं।
निम्नलिखित दो स्निपेट शब्दार्थ के समतुल्य हैं:
for item in iterator:
a_list.append(item)
तथा
a_list.extend(iterator)
बाद में तेज हो सकता है क्योंकि लूप सी में लागू किया गया है।
extend()
शायद प्रचार append()
करता है , जबकि संभावना नहीं है।
extend()
नहीं किया जा सकता है क्योंकि कुछ पुनरावृत्तियाँ लागू नहीं होती हैं __len__()
, लेकिन आप की तरह अगर यह कोशिश नहीं करता तो मुझे आश्चर्य होगा। कुछ प्रदर्शन लाभ भी पायथन के बजाय शुद्ध सी में पुनरावृत्ति भाग करने से आता है, जैसा कि आरोन के जवाब में बताया गया है ।
append()
विधि सूची के अंत में एक भी आइटम कहते हैं।
x = [1, 2, 3]
x.append([4, 5])
x.append('abc')
print(x)
# gives you
[1, 2, 3, [4, 5], 'abc']
extend()
विधि एक तर्क, एक सूची लेता है, और मूल सूची में तर्क की वस्तुओं में से प्रत्येक जोड़ देता है। (सूची को कक्षाओं के रूप में लागू किया जाता है। "एक सूची बनाना" वास्तव में एक वर्ग को तात्कालिक बनाना है। जैसे, एक सूची में इस पर काम करने के तरीके हैं।)
x = [1, 2, 3]
x.extend([4, 5])
x.extend('abc')
print(x)
# gives you
[1, 2, 3, 4, 5, 'a', 'b', 'c']
पाइव में डाइव से ।
extend
एक तत्व के साथ एक सूची के रूप में पास करते हैं ['abc']
: [1, 2, 3, 4, 5, 'एबीसी']। अपने उदाहरण आउटपुट को सही बनाने के लिए, एबीसी लाइन को इसमें बदलें x.extend('abc')
:। और x.extend(6)
इसे हटा दें या इसे बदल दें x.extend([6])
।
जगह में विस्तार करने के बजाय, आप वापसी विस्तार के लिए "+" का उपयोग कर सकते हैं।
l1=range(10)
l1+[11]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
l2=range(10,1,-1)
l1+l2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2]
इसी प्रकार +=
व्यवहार के लिए, लेकिन append
& से थोड़े अंतर के साथ extend
। से सबसे बड़े अंतरों में +=
से एक है append
और extend
जब यह फ़ंक्शन स्कैप में उपयोग किया जाता है, तो इस ब्लॉग पोस्ट को देखें ।
append(object)
- सूची में ऑब्जेक्ट जोड़कर सूची को अपडेट करता है।
x = [20]
# List passed to the append(object) method is treated as a single object.
x.append([21, 22, 23])
# Hence the resultant list length will be 2
print(x)
--> [20, [21, 22, 23]]
extend(list)
- अनिवार्य रूप से दो सूचियों को सम्मिलित करता है।
x = [20]
# The parameter passed to extend(list) method is treated as a list.
# Eventually it is two lists being concatenated.
x.extend([21, 22, 23])
# Here the resultant list's length is 4
print(x)
[20, 21, 22, 23]
extend()
एक पुनरावृत्ति तर्क के साथ इस्तेमाल किया जा सकता है। यहाँ एक उदाहरण है। आप इस तरह से सूचियों की सूची से एक सूची बनाना चाहते हैं:
से
list2d = [[1,2,3],[4,5,6], [7], [8,9]]
तुम्हें चाहिए
>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
आप ऐसा करने के itertools.chain.from_iterable()
लिए उपयोग कर सकते हैं । इस पद्धति का आउटपुट एक पुनरावृत्त है। इसके कार्यान्वयन के बराबर है
def from_iterable(iterables):
# chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
for it in iterables:
for element in it:
yield element
हमारे उदाहरण पर वापस, हम कर सकते हैं
import itertools
list2d = [[1,2,3],[4,5,6], [7], [8,9]]
merged = list(itertools.chain.from_iterable(list2d))
और वांछित सूची प्राप्त करें।
यहाँ बताया गया है कि कैसे extend()
एक इटैलर तर्क के साथ इसका इस्तेमाल किया जा सकता है:
merged = []
merged.extend(itertools.chain.from_iterable(list2d))
print(merged)
>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
यह ऑपरेटर के बराबर append
और extend
उपयोग करने वाला +
है:
>>> x = [1,2,3]
>>> x
[1, 2, 3]
>>> x = x + [4,5,6] # Extend
>>> x
[1, 2, 3, 4, 5, 6]
>>> x = x + [[7,8]] # Append
>>> x
[1, 2, 3, 4, 5, 6, [7, 8]]
append () : यह मूल रूप से पायथन में एक तत्व को जोड़ने के लिए उपयोग किया जाता है।
उदाहरण 1:
>> a = [1, 2, 3, 4]
>> a.append(5)
>> print(a)
>> a = [1, 2, 3, 4, 5]
उदाहरण 2:
>> a = [1, 2, 3, 4]
>> a.append([5, 6])
>> print(a)
>> a = [1, 2, 3, 4, [5, 6]]
विस्तार () : जहां विस्तार (), का उपयोग दो सूचियों को मर्ज करने या एक सूची में कई तत्वों को सम्मिलित करने के लिए किया जाता है।
उदाहरण 1:
>> a = [1, 2, 3, 4]
>> b = [5, 6, 7, 8]
>> a.extend(b)
>> print(a)
>> a = [1, 2, 3, 4, 5, 6, 7, 8]
उदाहरण 2:
>> a = [1, 2, 3, 4]
>> a.extend([5, 6])
>> print(a)
>> a = [1, 2, 3, 4, 5, 6]
एक दिलचस्प बिंदु जो संकेत दिया गया है, लेकिन समझाया नहीं गया है, यह है कि विस्तार परिशिष्ट की तुलना में तेज है। किसी भी लूप के लिए जिसके अंदर एपेंड है, को list.extend (संसाधित_बेल) द्वारा प्रतिस्थापित किया जाना चाहिए।
इस बात को ध्यान में रखें कि नए तत्वों को शामिल करने से पूरी सूची को याद रखने के लिए बेहतर स्थान प्राप्त हो सकता है। यदि यह कई बार किया जाता है क्योंकि हम एक समय में 1 तत्व जोड़ रहे हैं, तो समग्र प्रदर्शन ग्रस्त है। इस अर्थ में, list.extend "" .join (stringlist) के अनुरूप है।
एपेंड एक ही बार में पूरा डेटा जोड़ता है। पूरा डेटा नए बनाए गए इंडेक्स में जोड़ा जाएगा। दूसरी ओर,extend
जैसा कि यह नाम से पता चलता है, वर्तमान सरणी का विस्तार करता है।
उदाहरण के लिए
list1 = [123, 456, 678]
list2 = [111, 222]
हमारे साथ append
:
result = [123, 456, 678, [111, 222]]
जबकि extend
हमें मिलता है:
result = [123, 456, 678, 111, 222]
एक अंग्रेजी शब्दकोश शब्दों को परिभाषित करता है append
और इस extend
प्रकार है:
परिशिष्ट : एक लिखित दस्तावेज़ के अंत में (कुछ) जोड़ें।
विस्तार : बड़ा बनाओ। बढ़ाना या बढ़ाना
उस ज्ञान के साथ, अब समझते हैं
1) और के बीच का अंतरappend
extend
append
:
extend
:
list(iterable)
।2) और के बीच समानताappend
extend
None
।उदाहरण
lis = [1, 2, 3]
# 'extend' is equivalent to this
lis = lis + list(iterable)
# 'append' simply appends its argument as the last element to the list
# as long as the argument is a valid Python object
list.append(object)
मुझे आशा है कि मैं इस प्रश्न का एक उपयोगी पूरक बना सकता हूं। यदि आपकी सूची एक विशिष्ट प्रकार की वस्तु को संग्रहीत करती है, उदाहरण के लिए Info
, यहां एक ऐसी स्थिति है जो extend
विधि उपयुक्त नहीं है: एक for
लूप में और Info
हर बार किसी वस्तु को उत्पन्न करना और extend
इसे अपनी सूची में संग्रहीत करने के लिए उपयोग करना, यह विफल हो जाएगा। अपवाद नीचे की तरह है:
TypeError: 'Info' ऑब्जेक्ट पुनरावृत्त नहीं है
लेकिन अगर आप append
विधि का उपयोग करते हैं , तो परिणाम ठीक है। क्योंकि हर बार extend
विधि का उपयोग करते हुए , यह हमेशा इसे एक सूची या किसी अन्य संग्रह प्रकार के रूप में मानता है, इसे पुनरावृत्त करता है, और इसे पिछली सूची के बाद रखता है। एक विशिष्ट वस्तु को पुनरावृत्त नहीं किया जा सकता है, जाहिर है।
उन्हें सहज रूप से भेदने के लिए
l1 = ['a', 'b', 'c']
l2 = ['d', 'e', 'f']
l1.append(l2)
l1
['a', 'b', 'c', ['d', 'e', 'f']]
यह l1
उसके शरीर के अंदर एक शरीर को पुन: उत्पन्न करने जैसा है (नेस्टेड)।
# Reset l1 = ['a', 'b', 'c']
l1.extend(l2)
l1
['a', 'b', 'c', 'd', 'e', 'f']
यह ऐसा है कि दो अलग-अलग व्यक्ति विवाह करते हैं और एक संयुक्त परिवार का निर्माण करते हैं।
इसके अलावा मैं आपके संदर्भ के लिए सभी सूची के तरीकों की एक विस्तृत धोखा देती हूं।
list_methods = {'Add': {'extend', 'append', 'insert'},
'Remove': {'pop', 'remove', 'clear'}
'Sort': {'reverse', 'sort'},
'Search': {'count', 'index'},
'Copy': {'copy'},
}
append
केवल एक आइटम द्वारा सूची (जगह में) फैली हुई है , एकल ऑब्जेक्ट पास किया गया (तर्क के रूप में)।
extend
के रूप में कई वस्तुओं द्वारा सूची (जगह में) "फैली हुई" वस्तु (तर्क के रूप में है।
यह str
वस्तुओं के लिए थोड़ा भ्रमित हो सकता है ।
append
अंत में एक भी स्ट्रिंग आइटम जोड़ देगा लेकिन
extend
जोड़ देगा, उस स्ट्रिंग की लंबाई के रूप में कई "एकल" 'str' आइटम जोड़ देगा।append
भी अंत में एक एकल 'सूची' आइटम extend
जोड़ देगा और
पारित सूची की लंबाई के रूप में कई 'सूची' आइटम जोड़ देगा।def append_o(a_list, element): a_list.append(element) print('append:', end = ' ') for item in a_list: print(item, end = ',') print() def extend_o(a_list, element): a_list.extend(element) print('extend:', end = ' ') for item in a_list: print(item, end = ',') print() append_o(['ab'],'cd') extend_o(['ab'],'cd') append_o(['ab'],['cd', 'ef']) extend_o(['ab'],['cd', 'ef']) append_o(['ab'],['cd']) extend_o(['ab'],['cd'])
पैदा करता है:
append: ab,cd,
extend: ab,c,d,
append: ab,['cd', 'ef'],
extend: ab,cd,ef,
append: ab,['cd'],
extend: ab,cd,
अजगर में एक्स्टेंसिबिलिटी मैकेनिज्म में से एक है एपेंड और एक्सटेंड।
परिशिष्ट: सूची के अंत में एक तत्व जोड़ता है।
my_list = [1,2,3,4]
सूची में एक नया तत्व जोड़ने के लिए, हम निम्नलिखित तरीके से परिशिष्ट विधि का उपयोग कर सकते हैं।
my_list.append(5)
नया तत्व जोड़ा जाएगा डिफ़ॉल्ट स्थान हमेशा (लंबाई + 1) की स्थिति में है।
सम्मिलित करें: सम्मिलित विधि का उपयोग परिशिष्ट की सीमाओं को पार करने के लिए किया गया था। डालने के साथ, हम स्पष्ट रूप से उस सटीक स्थिति को परिभाषित कर सकते हैं जिस पर हम चाहते हैं कि हमारा नया तत्व डाला जाए।
डालने का विधि विवरण (इंडेक्स, ऑब्जेक्ट)। यह दो तर्क लेता है, पहला सूचकांक जिसे हम अपना तत्व सम्मिलित करना चाहते हैं और दूसरा तत्व।
Example: my_list = [1,2,3,4]
my_list[4, 'a']
my_list
[1,2,3,4,'a']
विस्तार: यह तब बहुत उपयोगी होता है जब हम दो या दो से अधिक सूचियों को एक सूची में शामिल करना चाहते हैं। विस्तार के बिना, यदि हम दो सूचियों में शामिल होना चाहते हैं, तो परिणामी वस्तु में सूचियों की एक सूची होगी।
a = [1,2]
b = [3]
a.append(b)
print (a)
[1,2,[3]]
यदि हम तत्व 2 पर पहुंचने की कोशिश करते हैं, तो हमें तत्व के बजाय एक सूची ([3]) मिलती है। दो सूचियों में शामिल होने के लिए, हमें परिशिष्ट का उपयोग करना होगा।
a = [1,2]
b = [3]
a.extend(b)
print (a)
[1,2,3]
कई सूचियों में शामिल होने के लिए
a = [1]
b = [2]
c = [3]
a.extend(b+c)
print (a)
[1,2,3]
extend
उपरोक्त उदाहरण में, इसके अलावा और बस ऑपरेटर के बीच अंतर क्या हैx = x + [4, 5]
?