📢 مقایسه کامل متدهای حذف در فهرستها (remove, pop, clear, del) 🐍
تو این پست قراره چهار ابزار قدرتمند برای حذف عناصر از فهرستها در پایتون رو زیر ذرهبین ببریم:
remove(), pop(), clear()، و del. 😎
میخوایم کاربردهاشون، تفاوتهاشون، و نکات ریز حرفهای رو با مثالهای کاربردی بررسی کنیم. آمادهاید؟ بریم شروع کنیم! 🚀
⬟〰️⬟〰️⬟〰️⬟〰️⬟
1️⃣ متد ()remove: حذف اولین نمونه از یه مقدار
♦️ کاربرد: وقتی میخوای یه مقدار خاص (نه ایندکس) رو از فهرست حذف کنی، ()remove اولین نمونه از اون مقدار رو پیدا و حذف میکنه.
📝 سینتکس:
my_
list.remove(value) # Hazf avalin namone az value
✨ مثال:
fruits = ["sib", "moz", "sib", "portoghal"]
fruits.remove("sib") # Hazf avalin "sib"
print(fruits) # Khoroji: ["moz", "sib", "portoghal"]
💡 نکات ریز:
- اگه مقدار تو فهرست نباشه، ارور ValueError میگیره. برای جلوگیری:
if "anar" in fruits:
fruits.remove("anar")
else:
print("Anar nist! 🚫")
- فقط اولین نمونه رو حذف میکنه. اگه بخوای همه نمونهها رو حذف کنی، باید حلقه بزنی:
while "sib" in fruits:
fruits.remove("sib")
- برای فهرستهای بزرگ، ()remove ممکنه کند باشه چون باید کل فهرست رو اسکن کنه.
- فقط با مقدار کار میکنه، نه ایندکس.
⬟〰️⬟〰️⬟〰️⬟〰️⬟
2️⃣ متد ()pop: حذف و برگردوندن عنصر با ایندکس
♦️ کاربرد: یه عنصر رو با ایندکسش حذف میکنه و مقدار حذفشده رو برمیگردونه. اگه ایندکس ندی، آخرین عنصر رو حذف میکنه.
📝 سینتکس:
my_
list.pop(index) # Hazf onsor ba index (pishfarz: akharin onsor)
✨ مثال:
fruits = ["sib", "moz", "portoghal"]
last_fruit =
fruits.pop() # Hazf akharin onsor
print(last_fruit) # Khoroji: portoghal
print(fruits) # Khoroji: ["sib", "moz"]
# Ya ba index
second_fruit =
fruits.pop(1) # Hazf "moz"
print(second_fruit) # Khoroji: moz
print(fruits) # Khoroji: ["sib"]
💡 نکات ریز:
- اگه ایندکس اشتباه بدی (مثلاً pop(10) تو فهرست 3 تایی)، ارور IndexError میگیره.
- چون مقدار حذفشده رو برمیگردونه، برای کارهایی مثل پشته (stack) عالیه:
stack = [1, 2, 3]
top =
stack.pop() # 3 ro migire va hazf mikone
- اگه فهرست خالی باشه و pop() بزنی، IndexError میگیره.
- سریعتر از remove() برای حذف با ایندکس، چون مستقیم به ایندکس دسترسی داره.
⬟〰️⬟〰️⬟〰️⬟〰️⬟
3️⃣ متد ()clear: خالی کردن کل فهرست
♦️ کاربرد: همه عناصر فهرست رو حذف میکنه، ولی خود متغیر فهرست میمونه (خالی).
📝 سینتکس:
my_
list.clear() # Hazf hame onsorha
✨ مثال:
fruits = ["sib", "moz", "portoghal"]
fruits.clear()
print(fruits) # Khoroji: []
💡 نکات ریز:
- برعکس del my_list، متغیر فهرست همچنان وجود داره، فقط خالیه.
- برای وقتی مناسبه که میخوای فهرست رو نگه داری و بعداً دوباره پر کنی.
- خیلی سریع و بهینهست، چون نیازی به بررسی ایندکس یا مقدار نداره.
- هیچ مقداری برنمیگردونه.
⬟〰️⬟〰️⬟〰️⬟〰️⬟
4️⃣ دستور del: حذف انعطافپذیر
♦️ کاربرد: یه دستور کلی پایتونه که میتونه یه عنصر، یه بازه (slice)، یا کل فهرست رو حذف کنه.
📝 سینتکس:
del my_list[index] # Hazf yek onsor
del my_list[start:end] # Hazf yek baze
del my_list # Hazf tamame list
✨ مثال:
fruits = ["sib", "moz", "portoghal", "anar"]
del fruits[1] # Hazf "moz"
print(fruits) # Khoroji: ["sib", "portoghal", "anar"]
del fruits[0:2] # Hazf az index 0 ta 1
print(fruits) # Khoroji: ["anar"]
del fruits # Hazf kole list
# print(fruits) # Error: 'fruits' is not defined
💡 نکات ریز:
- اگه ایندکس یا برش اشتباه بدی، ارور IndexError میگیره.
- برعکس ()pop، مقدار حذفشده رو برنمیگردونه.
- میتونه روی اشیاء دیگه (مثل دیکشنری یا متغیر) هم کار کنه:
my_dict = {"name": "ali"}
del my_dict["name"]
- برای حذف کل فهرست، حافظه رو کامل آزاد میکنه (برعکس ()clear که فقط خالی میکنه).
- تو حلقهها با احتیاط استفاده کن، چون حذف با del ممکنه ایندکسها رو بههم بریزه:
numbers = [1, 2, 3, 4]
for i in range(len(numbers)):
del numbers[i] # Bad idea! IndexError
💯 @PythonForYou 🧑💻👩💻
👇 ادامه در پست بعد 👇