पायथन में एक सूची (सरणी) से तत्वों को हटाना: स्पष्ट (), पॉप (), निकालें (), डेल

व्यापार

पायथन में प्रकार की सूची की सूची (सरणी) से किसी तत्व को हटाने के लिए, सूची विधियों का उपयोग करें स्पष्ट (), पॉप () और निकालें ()। आप इंडेक्स या स्लाइस का उपयोग करके सूची की स्थिति और श्रेणी भी निर्दिष्ट कर सकते हैं और फिर डेल स्टेटमेंट का उपयोग करके इसे हटा सकते हैं।

निम्नलिखित जानकारी यहाँ प्रदान की गई है।

  • सभी तत्वों को हटा दें:clear()
  • निर्दिष्ट स्थान पर एक तत्व हटाएं और उसका मूल्य प्राप्त करें।:pop()
  • निर्दिष्ट मान वाले तत्वों की खोज करता है और पहले तत्व को हटा देता है।:remove()
  • अनुक्रमणिका स्लाइस में स्थिति और श्रेणी निर्दिष्ट करके हटाना:del
  • मानदंड को पूरा करने वाले कई तत्वों को बैच हटा दें।:सूची समावेशन संकेत

ध्यान दें कि सूचियाँ विभिन्न प्रकार के डेटा को संग्रहीत कर सकती हैं, और सरणियों से कड़ाई से भिन्न होती हैं। सरणी (मानक पुस्तकालय) या NumPy का उपयोग करें जब आप उन प्रक्रियाओं के लिए सरणियों को संभालना चाहते हैं जिनके लिए स्मृति आकार या स्मृति पते की आवश्यकता होती है, या बड़े पैमाने पर डेटा की संख्यात्मक गणना के लिए।

सभी तत्वों को हटा दें:clear()

सूची विधि स्पष्ट () में, सभी तत्व हटा दिए जाते हैं, जिसके परिणामस्वरूप एक खाली सूची होती है।

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l.clear()
print(l)
# []

निर्दिष्ट स्थान पर एक तत्व हटाएं और उसका मूल्य प्राप्त करें।:pop()

किसी सूची की विधि पॉप () का उपयोग किसी निर्दिष्ट स्थान पर किसी तत्व को हटाने और उस तत्व का मान प्राप्त करने के लिए किया जा सकता है।

पहली (आरंभिक) संख्या 0 है।

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(0))
# 0

print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(3))
# 4

print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]

अंत (अंतिम) से स्थिति निर्दिष्ट करने के लिए एक नकारात्मक मान का भी उपयोग किया जा सकता है। अंत (अंतिम) -1 है।

print(l.pop(-2))
# 8

print(l)
# [1, 2, 3, 5, 6, 7, 9]

यदि तर्क छोड़ दिया जाता है और कोई स्थिति निर्दिष्ट नहीं की जाती है, तो अंत (अंतिम) का तत्व हटा दिया जाता है।

print(l.pop())
# 9

print(l)
# [1, 2, 3, 5, 6, 7]

एक गैर-मौजूद स्थिति निर्दिष्ट करने के परिणामस्वरूप एक त्रुटि होगी।

# print(l.pop(100))
# IndexError: pop index out of range

ध्यान दें कि पॉप (0), जो पहले तत्व को हटा देता है, को निम्नलिखित लागत की आवश्यकता होती है और यह एक कुशल संचालन नहीं है। सूचियों पर विभिन्न कार्यों की कम्प्यूटेशनल जटिलता के लिए आधिकारिक विकी पर निम्न पृष्ठ देखें।
O(n)

O(1)डेक प्रकार मानक पुस्तकालय संग्रह मॉड्यूल में एक प्रकार के रूप में प्रदान किया जाता है जो इस कीमत पर तत्वों को शीर्ष पर हटा देता है। उदाहरण के लिए, यदि आप डेटा को एक क्यू (FIFO) के रूप में देखना चाहते हैं, तो यह deque का उपयोग करने के लिए अधिक कुशल है।

निर्दिष्ट मान वाले तत्वों की खोज करता है और पहले तत्व को हटा देता है।:remove()

सूची विधि निकालें () का उपयोग निर्दिष्ट किए गए समान मान वाले तत्वों को खोजने और पहले तत्व को हटाने के लिए किया जा सकता है।

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

यदि सूची में एक से अधिक तत्व हैं जो निर्दिष्ट मान से मेल खाते हैं, तो केवल पहला तत्व हटा दिया जाएगा।

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

यदि एक गैर-मौजूद मान निर्दिष्ट किया गया है, तो एक त्रुटि उत्पन्न होती है।

# l.remove('xxx')
# ValueError: list.remove(x): x not in list

अनुक्रमणिका स्लाइस में स्थिति और श्रेणी निर्दिष्ट करके हटाना:del

आप सूची से तत्वों को हटाने के लिए डेल स्टेटमेंट का भी उपयोग कर सकते हैं।

उस तत्व को निर्दिष्ट करें जिसे उसके सूचकांक द्वारा हटाया जाना है। पहला (प्रारंभिक) सूचकांक 0 है, और अंतिम (अंतिम) सूचकांक -1 है।

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]

del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]

यदि आप स्लाइस के साथ एक श्रेणी निर्दिष्ट करते हैं, तो आप एक साथ कई तत्वों को हटा सकते हैं।

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]

l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]

l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]

l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]

संपूर्ण श्रेणी निर्दिष्ट करना और सभी तत्वों को हटाना भी संभव है।

l = list(range(10))
del l[:]
print(l)
# []

[start:stop:step]यदि आप इस तरह से स्लाइस में श्रेणी निर्दिष्ट करते हैं और वृद्धिशील चरण निर्दिष्ट करते हैं, तो आप एक साथ कई कूदने वाले तत्वों को हटा सकते हैं।

l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]

l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]

टुकड़ा करने की क्रिया के बारे में अधिक जानकारी के लिए, निम्न आलेख देखें।

मानदंड को पूरा करने वाले कई तत्वों को बैच हटा दें।:सूची समावेशन संकेत

शर्तों को पूरा करने वाले तत्वों को हटाने की प्रक्रिया उन तत्वों को छोड़ने (निकालने) की प्रक्रिया के बराबर है जो शर्तों को पूरा नहीं करते हैं। इस तरह के प्रसंस्करण के लिए सूची समझ संकेतन का उपयोग किया जाता है।

विषम या सम तत्वों को हटाने का एक उदाहरण (= सम या विषम तत्वों को छोड़कर) नीचे दिखाया गया है।
%यह शेष ऑपरेटर है।
i % 2
यह i का शेष भाग 2 से विभाजित है।

सूची बोध संकेतन में, एक नई सूची बनाई जाती है। अब तक शुरू की गई सूची प्रकार विधियों के विपरीत, मूल सूची अपरिवर्तित रहती है।

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]

print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]

print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

अन्य उदाहरण। सशर्त अभिव्यक्ति के आधार पर विभिन्न प्रकार की प्रसंस्करण संभव है।

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']

print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']

print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']

यदि आप डुप्लिकेट तत्वों को हटाना चाहते हैं, तो सेट सेट प्रकार का उपयोग करें।

print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']