2012-06-24 12 views
7

संभव डुप्लिकेट:
Python append() vs. + operator on lists, why do these give different results?प्लस मैनिपुलेशन के लिए प्लस में प्लस और संलग्न करने के बीच क्या अंतर है?

अजगर में सूची में गड़बड़ी के लिए के बीच "+" और "जोड़ना" वास्तविक अंतर क्या है?

उत्तर

1

+ ऑपरेशन सरणी तत्वों को मूल सरणी में जोड़ता है। array.append ऑपरेशन सरणी (या किसी ऑब्जेक्ट) को मूल सरणी के अंत में सम्मिलित करता है।

[1, 2, 3] + [4, 5, 6] // [1, 2, 3, 4, 5, 6] 

b = [1, 2, 3] 
b.append([4, 5, 6]) // [1, 2, 3, [4, 5, 6]] 

यहाँ एक नज़र डालें: Python append() vs. + operator on lists, why do these give different results?

7

का उपयोग list.append जगह में सूची को संशोधित करता है - उसके परिणाम None है। + का उपयोग करना एक नई सूची बनाता है।

0

+ एक बाइनरी ऑपरेटर है जो दो ऑपरेंड सूचियों के एक संयोजन से उत्पन्न एक नई सूची तैयार करता है। append एक उदाहरण विधि है जो एक मौजूदा सूची में एकल तत्व जोड़ती है।

पीएस क्या आपका मतलब extend था?

2
>>> L1 = [1,2,3] 
>>> L2 = [97,98,99] 
>>> 
>>> # Mutate L1 by appending more values: 
>>> L1.append(4) 
>>> L1 
[1, 2, 3, 4] 
>>> 
>>> # Create a new list by adding L1 and L2 together 
>>> L1 + L2 
[1, 2, 3, 4, 97, 98, 99] 
>>> # L1 and L2 are unchanged 
>>> L1 
[1, 2, 3, 4] 
>>> L2 
[97, 98, 99] 
>>> 
>>> # Mutate L2 by adding new values to it: 
>>> L2 += [999] 
>>> L2 
[97, 98, 99, 999] 
10

दो प्रमुख अंतर हैं। वास्तव में, यह वास्तव में है - extend+= की तरह वास्तव में है:

>>> a = [1, 2, 3] 
>>> a + 4 
Traceback (most recent call last): 
    File "<pyshell#13>", line 1, in <module> 
    a + 4 
TypeError: can only concatenate list (not "int") to list 
>>> a + [4] 
[1, 2, 3, 4] 
>>> a.append([4]) 
>>> a 
[1, 2, 3, [4]] 
>>> a.extend([4]) 
>>> a 
[1, 2, 3, [4], 4] 

अन्य, अधिक प्रमुख, अंतर यह है कि तरीकों में जगह काम करते हैं: पहला यह है कि +append करने से extend को अर्थ में करीब है है += के समान व्यवहार, सिवाय इसके कि यह किसी भी पुनरावर्तनीय को स्वीकार कर सकता है, जबकि += केवल एक और सूची ले सकता है।

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