python - Del, অপসারণ এবং তালিকায় পপ মধ্যে পার্থক্য



list (7)

>>> a=[1,2,3]
>>> a.remove(2)
>>> a
[1, 3]
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1, 3]
>>> a= [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
>>> 

একটি তালিকা থেকে একটি উপাদান অপসারণ উপরের তিনটি পদ্ধতির মধ্যে কোন পার্থক্য আছে?


অনেক ভাল ব্যাখ্যা এখানে আছে তবে আমি আরো সহজ করার জন্য আমার যথাসাধ্য চেষ্টা করব।

এই সব পদ্ধতিগুলির মধ্যে, বিপরীত এবং পপ পোস্টফিক্স যখন মুছে ফেলার উপসর্গ হয়

অপসারণ (): এটি উপাদান প্রথম সংঘটিত অপসারণ করতে ব্যবহৃত

remove(i) => আমি প্রথম মূল্যের ঘটনার

>>> a = [0, 2, 3, 2, 1, 4, 6, 5, 7]
>>> a.remove(2)   # where i = 2
>>> a
[0, 3, 2, 1, 4, 6, 5, 7]

পপ (): এটি উপাদানটি মুছে ফেলতে ব্যবহৃত হলে:

অসূচিত

pop() => তালিকার শেষে থেকে

>>>a.pop()
>>>a
[0, 3, 2, 1, 4, 6, 5]

নিদিষ্ট

pop(index) => সূচক

>>>a.pop(2)
>>>a
[0, 3, 1, 4, 6, 5]

সতর্কতা: এগিয়ে বিপজ্জনক পদ্ধতি

মুছে ফেলুন () : এটি একটি উপসর্গ পদ্ধতি।

একই পদ্ধতির জন্য দুটি ভিন্ন সিনট্যাক্সের উপর নজর রাখুন: [] এবং ()। এটি ক্ষমতা আছে:

1. তালিকা মুছে ফেলুন

del a[index] => সূচী এবং এর সাথে সংশ্লিষ্ট পপ ঠিক মত মুছে ফেলতে ব্যবহৃত।

>>>del a[1]
>>>a
[0, 1, 4, 6, 5]

2. পরিসীমা মান মুছে ফেলা [সূচক 1: সূচক এন]

del a[0:3] => পরিসীমা একাধিক মান

>>>del a[0:3]
>>>a
[6, 5]

3. সর্বশেষ কিন্তু একটি শট পুরো তালিকা মুছে ফেলতে তালিকা, না

del (a) => উপরে বলেছেন।

>>>del (a)
>>>a

এই যে কোনো বিভ্রান্তি স্পষ্ট করে আশা করি।


ইতিমধ্যে অন্যদের দ্বারা বেশ ভাল উত্তর। আমার শেষ থেকে এই এক :)

স্পষ্টতই, pop হল একমাত্র যা মানটি ফেরত দেয় এবং remove দেয় কেবলমাত্র এমন বস্তুটি অনুসন্ধান করে, যখন del নিজেকে সহজ remove জন্য সীমাবদ্ধ করে।


এছাড়াও আপনি সূচক দ্বারা একটি মান মুছে ফেলার জন্য অপসারণ ব্যবহার করতে পারেন।

n = [1, 3, 5]

n.remove(n[1])

এন তারপর পড়ুন [1, 5]


পপ - সূচক নেয় এবং মূল্য ফেরত

অপসারণ - মান নেয়, প্রথম ঘটনার সরিয়ে দেয়, এবং কিছুই ফেরত দেয় না

মুছে ফেলুন - সূচী নেয়, সেই সূচীতে মানটি সরিয়ে দেয় এবং কিছুই ফেরত দেয় না


বিভিন্ন তথ্য কাঠামো উপর কোন অপারেশন / ফাংশন বিশেষ কর্মের জন্য সংজ্ঞায়িত করা হয়। এখানে আপনার ক্ষেত্রে যেমন একটি উপাদান অপসারণ, মুছে দিন, পপ এবং অপসারণ। (আপনি সেট বিবেচনা করলে, অন্য অপারেশন যুক্ত করুন - প্রত্যাহার করুন) অন্য বিভ্রান্তিকর ক্ষেত্রে যোগ করার সময়। সন্নিবেশ / লিখবেন। বিক্ষোভের জন্য, আমাদের deque বাস্তবায়ন করা যাক। deque একটি হাইব্রিড রৈখিক তথ্য গঠন, যেখানে আপনি উভয় প্রান্ত থেকে উপাদান যোগ / উপাদান মুছে ফেলতে পারেন। (রিয়ার এবং সামনে শেষ)

class Deque(object):

  def __init__(self):

    self.items=[]

  def addFront(self,item):

    return self.items.insert(0,item)
  def addRear(self,item):

    return self.items.append(item)
  def deleteFront(self):

    return self.items.pop(0)
  def deleteRear(self):
    return self.items.pop()
  def returnAll(self):

    return self.items[:]

এখানে, অপারেশন দেখুন:

def deleteFront(self):

    return self.items.pop(0)
def deleteRear(self):
    return self.items.pop()

অপারেশন কিছু ফেরত আছে। সুতরাং, পপ - একটি সূচক ছাড়া এবং ছাড়া। যদি আমি মানটি ফেরত দিতে চাই না: del self.items [0]

মান দ্বারা মুছে দিন না সূচক:

  • অপসারণ :

    list_ez=[1,2,3,4,5,6,7,8]
    for i in list_ez:
        if i%2==0:
            list_ez.remove(i)
    print list_ez

ফিরে [1,3,5,7]

আমাদের সেট ক্ষেত্রে বিবেচনা করা যাক।

set_ez=set_ez=set(range(10))

set_ez.remove(11)

# Gives Key Value Error. 
##KeyError: 11

set_ez.discard(11)

# Does Not return any errors.

যেহেতু অন্য কেউ এটি উল্লেখ করেনি, নোট করুন ( pop বিপরীতে) তালিকার স্লাইসিংয়ের কারণে সূচকের একটি পরিসর অপসারণের অনুমতি দেয়:

>>> lst = [3, 2, 2, 1]
>>> del lst[1:]
>>> lst
[3]

সূচী তালিকা না থাকলে এটি একটি সূচক IndexError পরিহারকেও মঞ্জুরি দেয়:

>>> lst = [3, 2, 2, 1]
>>> del lst[10:]
>>> lst
[3, 2, 2, 1]

হ্যাঁ, প্রথম মাপের মানটি সরিয়ে remove , একটি নির্দিষ্ট সূচী নয়:

>>> a = [0, 2, 3, 2]
>>> a.remove(2)
>>> a
[0, 3, 2]

del একটি নির্দিষ্ট সূচী আইটেম মুছে ফেলা:

>>> a = [3, 2, 2, 1]
>>> del a[1]
>>> a
[3, 2, 1]

এবং pop একটি নির্দিষ্ট সূচক আইটেমটি মুছে এবং এটি ফেরত।

>>> a = [4, 3, 5]
>>> a.pop(1)
3
>>> a
[4, 5]

তাদের ত্রুটি মোড খুব ভিন্ন:

>>> a = [4, 5, 6]
>>> a.remove(7)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> del a[7]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> a.pop(7)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range




list