ازگر میں فہرست (سرنی) سے عناصر کو ہٹانا: صاف()، پاپ()، ہٹائیں()، ڈیل

کاروبار

Python میں قسم کی فہرست کی فہرست (سرنی) سے کسی عنصر کو ہٹانے کے لیے، فہرست کے طریقے clear(), pop() اور remove() استعمال کریں۔ آپ انڈیکس یا سلائس کا استعمال کرکے فہرست کی پوزیشن اور رینج کی بھی وضاحت کرسکتے ہیں اور پھر ڈیل اسٹیٹمنٹ کا استعمال کرکے اسے حذف کرسکتے ہیں۔

درج ذیل معلومات یہاں فراہم کی گئی ہیں۔

  • تمام عناصر کو ہٹا دیں۔:clear()
  • مخصوص پوزیشن پر ایک عنصر کو حذف کریں اور اس کی قیمت حاصل کریں۔:pop()
  • مخصوص قدر والے عناصر کی تلاش کرتا ہے اور پہلے عنصر کو ہٹاتا ہے۔:remove()
  • انڈیکس سلائس میں پوزیشن اور رینج بتا کر حذف کرنا:del
  • بیچ متعدد عناصر کو حذف کریں جو معیار پر پورا اترتے ہیں۔:فہرست میں شمولیت کا اشارہ

نوٹ کریں کہ فہرستیں مختلف اقسام کے ڈیٹا کو محفوظ کر سکتی ہیں، اور صفوں سے بالکل مختلف ہیں۔ ارے (معیاری لائبریری) یا NumPy کا استعمال کریں جب آپ ان پروسیسز کے لیے صفوں کو ہینڈل کرنا چاہتے ہیں جن کے لیے میموری سائز یا میموری ایڈریس کی ضرورت ہوتی ہے، یا بڑے پیمانے پر ڈیٹا کی عددی گنتی کے لیے۔

تمام عناصر کو ہٹا دیں۔:clear()

فہرست کے طریقہ کار میں clear()، تمام عناصر کو ہٹا دیا جاتا ہے، جس کے نتیجے میں ایک خالی فہرست ہوتی ہے۔

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

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

مخصوص پوزیشن پر ایک عنصر کو حذف کریں اور اس کی قیمت حاصل کریں۔:pop()

ایک فہرست کا طریقہ 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()

فہرست کا طریقہ 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']
Copied title and URL