2009-02-14 28 views
20

अजगर 2.5.2 निम्नलिखित व्यवहारपायथन एक खाली सूची बग के साथ विस्तारित?

>>>[2].extend([]) == [2] 
False 

>>> [2].extend([]) == None 
True 

$ python --version 
Python 2.5.2 

मुझे लगता है मैं यहाँ कुछ समझ नहीं कर रहा हूँ मान, लेकिन मुझे लगता है कि सहज चाहते हैं कि [2] .extend ([]) उपज चाहिए क्यों है [2]

+0

दुभाषिया होने पर अंतर्ज्ञान की आवश्यकता कौन है? बस 'प्रिंट [2] .extend ([]) '। – tzot

उत्तर

35

विस्तार सूची का एक तरीका है, जो इसे संशोधित करता है लेकिन self वापस नहीं करता है (इसके बजाय None लौटाता है)। यदि आपको अभिव्यक्ति मान के रूप में संशोधित मान की आवश्यकता है, तो का उपयोग करें, जैसा कि [2]+[] में है।

9

बिल्कुल।

>>> x = [2] 
>>> x.extend([]) # Nothing is printed because the return value is None 
>>> x == [2] 
True 
>>> x 
[2] 

वे इस उद्देश्य पर ऐसा करते हैं ताकि आपको याद रहे कि विस्तारित कार्य वास्तव में सूची में सूची को संशोधित कर रहा है। क्रमबद्ध() के साथ ही। यह हमेशा कोई नहीं देता है।

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