آموزش پایتون - حذف آیتم‌ها

حذف آیتم‌های دیکشنری

حذف آیتم‌های دیکشنری در پایتون به معنای پاک کردن جفت‌های کلید-مقدار از یک دیکشنری موجود است. دیکشنری‌ها ساختارهای داده تغییرپذیری (mutable) هستند که جفت‌های کلید و مقادیر مرتبط با آن‌ها را نگهداری می‌کنند. هر کلید به عنوان یک شناسه منحصربه‌فرد عمل کرده و به یک مقدار مشخص در دیکشنری نگاشت می‌شود.

حذف آیتم‌ها از یک دیکشنری به شما این امکان را می‌دهد که داده‌های غیرضروری یا ناخواسته را از دیکشنری حذف کرده و در نتیجه حجم آن را کاهش داده و محتوایش را تغییر دهید.

ما می‌توانیم آیتم‌های دیکشنری در پایتون را با استفاده از روش‌های مختلفی حذف کنیم، از جمله −

  • با استفاده از کلمه کلیدی del
  • با استفاده از متد pop()
  • با استفاده از متد popitem()
  • با استفاده از متد clear()
  • با استفاده از دیکشنری کامپریهنشن (Dictionary Comprehension)

حذف آیتم‌های دیکشنری با استفاده از کلمه کلیدی del

کلمه کلیدی del در پایتون برای حذف اشیاء به کار می‌رود. در زمینه دیکشنری‌ها، از آن برای حذف یک آیتم یا مجموعه‌ای از آیتم‌ها از دیکشنری بر اساس کلید(های) مشخص‌شده استفاده می‌شود.

ما می‌توانیم با مشخص کردن کلید آیتمی که قصد حذف آن را داریم، آیتم‌های دیکشنری را با استفاده از کلمه کلیدی del حذف کنیم. این کار جفت کلید-مقدار مرتبط با کلید مشخص‌شده را از دیکشنری پاک می‌کند.

مثال ۱

در مثال زیر، ما در حال ساخت یک دیکشنری به نام numbers با کلیدهای عددی و مقادیر رشته‌ای مربوط به آن‌ها هستیم. سپس، آیتم با کلید '20' را با استفاده از کلمه کلیدی del حذف می‌کنیم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before delete operation: \n", numbers)
del numbers[20]
print ("numbers dictionary before delete operation: \n", numbers)

این کد خروجی زیر را تولید خواهد کرد −

numbers dictionary before delete operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary before delete operation: 
 {10: 'Ten', 30: 'Thirty', 40: 'Forty'}

مثال ۲

کلمه کلیدی del زمانی که همراه با یک شیء دیکشنری استفاده شود، خود دیکشنری را کاملاً از حافظه حذف می‌کند −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before delete operation: \n", numbers)
del numbers
print ("numbers dictionary before delete operation: \n", numbers)

خروجی به دست آمده به صورت زیر است −

numbers dictionary before delete operation:
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
Traceback (most recent call last):
 File "C:\Users\mlath\examples\main.py", line 5, in <module>
  print ("numbers dictionary before delete operation: \n", numbers)
                                                           ^^^^^^^
NameError: name 'numbers' is not defined

حذف آیتم‌های دیکشنری با استفاده از متد pop()

متد pop() در پایتون برای حذف یک کلید مشخص از دیکشنری و بازگرداندن مقدار مربوط به آن استفاده می‌شود. اگر کلید مشخص‌شده یافت نشود، به جای بروز خطای KeyError می‌تواند به صورت اختیاری یک مقدار پیش‌فرض را بازگرداند.

ما می‌توانیم آیتم‌های دیکشنری را با استفاده از متد pop() و تعیین کلید آیتم مورد نظر حذف کنیم. این متد مقدار مرتبط با کلید مشخص‌شده را بازمی‌گرداند و جفت کلید-مقدار را از دیکشنری حذف می‌کند.

مثال

در این مثال، ما از متد pop() برای حذف آیتم با کلید '20' (و ذخیره مقدار آن در val) از دیکشنری 'numbers' استفاده می‌کنیم. سپس دیکشنری به‌روزرسانی‌شده و مقدار خارج‌شده را دریافت می‌کنیم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before pop operation: \n", numbers)
val = numbers.pop(20)
print ("nubvers dictionary after pop operation: \n", numbers)
print ("Value popped: ", val)

خروجی کد بالا به صورت زیر است −

numbers dictionary before pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
nubvers dictionary after pop operation: 
 {10: 'Ten', 30: 'Thirty', 40: 'Forty'}
Value popped:  Twenty

حذف آیتم‌های دیکشنری با استفاده از متد popitem()

متد popitem() در پایتون برای حذف و بازگرداندن آخرین جفت کلید-مقدار موجود در دیکشنری استفاده می‌شود.

از پایتون ۳.۷ به بعد، دیکشنری‌ها ترتیب اضافه شدن عناصر را حفظ می‌کنند؛ بنابراین popitem() آخرین آیتم اضافه شده را حذف می‌کند. اگر دیکشنری خالی باشد، فراخوانی popitem() باعث بروز خطای KeyError می‌شود.

ما می‌توانیم با فراخوانی متد popitem() روی یک دیکشنری، آیتم‌های آن را حذف کنیم؛ این متد آخرین جفت کلید-مقدار اضافه شده به دیکشنری را حذف کرده و بازمی‌گرداند.

مثال

در مثال زیر، از متد popitem() برای حذف یک آیتم از دیکشنری 'numbers' (و ذخیره جفت کلید-مقدار آن در val) استفاده می‌کنیم و دیکشنری به‌روزرسانی‌شده را همراه با جفت کلید-مقدار خارج‌شده دریافت می‌کنیم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before pop operation: \n", numbers)
val = numbers.popitem()
print ("numbers dictionary after pop operation: \n", numbers)
print ("Value popped: ", val)

خروجی کد بالا به صورت زیر نشان داده شده است −

numbers dictionary before pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary after pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty'}
Value popped:  (40, 'Forty')

حذف آیتم‌های دیکشنری با استفاده از متد clear()

متد clear() در پایتون برای حذف تمام آیتم‌ها از یک دیکشنری به کار می‌رود. این متد به طور کامل دیکشنری را خالی کرده و طول آن را به ۰ می‌رساند.

ما می‌توانیم با فراخوانی متد clear() روی شیء دیکشنری، آیتم‌های آن را پاک کنیم. این متد همه جفت‌های کلید-مقدار را از دیکشنری حذف کرده و آن را کاملاً خالی می‌کند.

مثال

در مثال زیر، ما از متد clear() برای حذف تمام آیتم‌ها از دیکشنری 'numbers' استفاده می‌کنیم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before clear method: \n", numbers)
numbers.clear()
print ("numbers dictionary after clear method: \n", numbers)

خروجی به صورت زیر به دست می‌آید −

numbers dictionary before clear method: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary after clear method: 
 {}

حذف آیتم‌های دیکشنری با استفاده از دیکشنری کامپریهنشن

دیکشنری کامپریهنشن (Dictionary Comprehension) روشی مختصر و خلاصه برای ساخت دیکشنری در پایتون است. این روش از همان ساختار لیست کامپریهنشن پیروی می‌کند، اما به جای لیست، دیکشنری تولید می‌کند. با استفاده از دیکشنری کامپریهنشن می‌توانید روی اشیاء پیمایش‌پذیر (مانند لیست‌ها، تاپل‌ها یا سایر دیکشنری‌ها) پیمایش کرده، یک عبارت را روی هر آیتم اعمال کنید و جفت‌های کلید-مقدار را بر اساس نتیجه آن عبارت بسازید.

ما نمی‌توانیم آیتم‌های دیکشنری را مستقیماً با استفاده از دیکشنری کامپریهنشن حذف کنیم. دیکشنری کامپریهنشن عمدتاً برای ساخت دیکشنری‌های جدید بر اساس برخی تغییرات یا فیلتر کردن داده‌های موجود استفاده می‌شود، نه برای حذف آیتم‌ها از دیکشنری.

اگر نیاز به حذف آیتم‌ها از یک دیکشنری بر اساس شرایط خاصی دارید، معمولاً از متدهای دیگری مانند del، pop() یا popitem() استفاده می‌کنید. این متدها به شما امکان می‌دهند به طور صریح مشخص کنید کدام آیتم‌ها از دیکشنری حذف شوند.

مثال

در این مثال، ما آیتم‌های 'age' و 'major' را از دیکشنری 'student_info' بر اساس یک لیست ازپیش‌تعریف‌شده از کلیدهای قابل حذف، پاک می‌کنیم −

# Creating a dictionary
student_info = {
    "name": "Alice",
    "age": 21,
    "major": "Computer Science"
}

# Removing items based on conditions
keys_to_remove = ["age", "major"]
for key in keys_to_remove:
    student_info.pop(key, None)

print(student_info)  

خروجی به دست آمده به صورت زیر است −

{'name': 'Alice'}

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.