1. यह कोड सही है:

    def delete_a_list_element(list_data, element_value):
        result =[]
        if not (element_value in list_data) :
            return 0
        else :
            while (element_value in list_data) :
                list_data.remove(element_value)
                result = list_data
            return result
    
  2. यह कोड गलत है:

    def delete_a_list_element(list_data, element_value):
        result =[]
        if not (element_value in list_data) :
            return 0
        else :
            while (element_value in list_data) :
                result = list_data.remove(element_value)
    
            return result
    

मुझे नहीं पता क्यों (2) गलत है।

0
min min 11 जून 2020, 09:54
3
वह फ़ंक्शन वास्तव में समझ में नहीं आता है। यह शून्य या सूची क्यों लौटाता है? साथ ही परिणाम का असाइनमेंट किसी भी मामले में व्यर्थ लगता है, क्योंकि आप जो लागू कर रहे हैं वह सिर्फ return list_data है। लेकिन पाइथन विधियां और कार्य जो उनके विषय को बदलते हैं (जैसे हटाएं!) परंपरागत रूप से कुछ भी वापस नहीं करते हैं। यह स्पष्ट नहीं है कि आप सूची को वापस करने की अपेक्षा क्यों करेंगे, ऐसा नहीं है जो दस्तावेज़ कहता है।
 – 
jonrsharpe
11 जून 2020, 10:03

2 जवाब

आप list_data.remove(element_value) वापस करने की कोशिश कर रहे हैं, लेकिन आप ऐसा नहीं कर सकते क्योंकि "निकालें" पायथन में एक अंतर्निहित फ़ंक्शन है जो कोई नहीं देता है। पहला उदाहरण काम करता है क्योंकि आप हटाने के बाद list_data लौटा रहे हैं

1
Kremklatt 11 जून 2020, 10:12
2
आप जोड़ सकते हैं कि list.remove(x) कुछ भी वापस नहीं करता है, यह एक void विधि है। यह सूची को अद्यतन करता है लेकिन कुछ भी वापस नहीं करता है।
 – 
MaxouMask
11 जून 2020, 10:02
मेरा जवाब अपडेट किया, धन्यवाद @MaxouMask।
 – 
Kremklatt
11 जून 2020, 10:04
1
"रिटर्न शून्य" यह None लौटाता है। पायथन में शून्य की कोई अवधारणा नहीं है।
 – 
juanpa.arrivillaga
11 जून 2020, 10:11

दूसरा दृष्टिकोण None list.remove() विधि के कारण लौटाता है। डिफ़ॉल्ट रूप से remove() कोई मान नहीं लौटाता (returns None)। इसलिए दूसरे दृष्टिकोण में new list के बजाय result is None

0
DaVinci 11 जून 2020, 10:03