خانه / آموزش‌ها / آموزش کامل متدهای لیست در پایتون (List Methods)

آموزش کامل متدهای لیست در پایتون (List Methods)

🐍 HomeOfPython
|
📅 1404/10/16

در پایتون، لیست‌ها (Lists) یکی از پرکاربردترین ساختمان‌ داده‌ها هستند. برای کار با این لیست‌ها، پایتون مجموعه‌ای از توابع داخلی (Built-in Methods) را ارائه می‌دهد که به ما اجازه می‌دهد عناصر را اضافه، حذف، جستجو یا مرتب کنیم. در این مقاله به صورت کاملاً جامع تمام این متدها را بررسی می‌کنیم.

نمودار متدهای لیست

سطح مقدماتی (Beginner Level)

در این سطح، با نحوه عملکرد متدهای اصلی لیست آشنا می‌شویم. به یاد داشته باشید که اکثر متدهای لیست، تغییرات را درجا (In-place) اعمال می‌کنند؛ یعنی لیست اصلی تغییر می‌کند و نیازی نیست نتیجه را در متغیر جدیدی ذخیره کنید.

۱. اضافه کردن عناصر (Adding Elements)

برای اضافه کردن داده به لیست، سه متد اصلی وجود دارد: append، extend و insert.

متد append()

این متد یک عنصر را دقیقاً به انتهای لیست اضافه می‌کند.

python
# Static Syntax (Snippet)
# list.append(item)
Python
Python

متد extend()

اگر بخواهید عناصر یک لیست دیگر (یا هر iterable دیگری) را تک‌تک به انتهای لیست فعلی بچسبانید، از این متد استفاده می‌کنید.

Python

متد insert()

این متد عنصر را در یک ایندکس (Index) مشخص قرار می‌دهد و بقیه عناصر را به جلو هل می‌دهد.

python
# Static Syntax
# list.insert(index, element)
Python

۲. حذف کردن عناصر (Removing Elements)

برای حذف، متدهای remove، pop و clear کاربرد دارند.

متد remove()

اولین عنصری که مقدارش با ورودی تابع برابر باشد را حذف می‌کند. اگر عنصر وجود نداشته باشد، خطا (Error) می‌دهد.

Python

متد pop()

عنصر موجود در ایندکس مشخص شده را حذف می‌کند و آن را برمی‌گرداند (Return می‌کند). اگر ایندکس ندهیم، آخرین عنصر را حذف می‌کند.

Python
Python

متد clear()

تمام عناصر لیست را حذف کرده و لیست را خالی می‌کند.

Python

۳. جستجو و اطلاعات (Information & Search)

متد index()

شماره ایندکس اولین مکانی که مقدار مورد نظر یافت شود را برمی‌گرداند.

Python

متد count()

تعداد دفعات تکرار یک مقدار خاص در لیست را می‌شمارد.

Python

۴. مرتب‌سازی و معکوس کردن (Ordering)

متد sort()

لیست را به صورت صعودی یا نزولی مرتب می‌کند. این متد لیست اصلی را تغییر می‌دهد.

Python
Python

متد reverse()

ترتیب عناصر لیست را کاملاً برعکس می‌کند (بدون مرتب‌سازی، فقط سروته کردن).

Python

سطح پیشرفته (Professional Level)

در این بخش به نکات فنی، مدیریت حافظه، تفاوت‌های ظریف و Performance متدها می‌پردازیم.

۱. تفاوت copy() و کپی ارجاعی (Shallow Copy)

زمانی که می‌نویسید list2 = list1، شما کپی ایجاد نمی‌کنید، بلکه ارجاع (Reference) می‌دهید. برای کپی واقعی سطح اول (Shallow Copy) باید از متد copy() استفاده کنید.

Python

۲. مرتب‌سازی پیشرفته با key

متد sort() پارامتری به نام key می‌گیرد که یک تابع است. پایتون قبل از مقایسه هر عنصر، این تابع را روی آن اجرا می‌کند.

Python
python
# Static Snippet: Sort by length of string
names = ["Alexander", "Bob", "Catherine"]
names.sort(key=len)
# Result: ['Bob', 'Alexander', 'Catherine'] (sorted by length)

۳. نکات پرفورمنس (Big O Notation)

به عنوان یک برنامه‌نویس حرفه‌ای باید هزینه زمانی (Time Complexity) متدها را بدانید:

  • append(): دارای پیچیدگی O(1) است. بسیار سریع است زیرا فقط به انتهای حافظه اضافه می‌کند.
  • insert(0, item): دارای پیچیدگی O(n) است. بسیار کند است زیرا باید تمام عناصر لیست را یک خانه به جلو شیفت دهد. اگر نیاز به اضافه کردن مداوم به ابتدای لیست دارید، از collections.deque استفاده کنید.
  • pop() (آخر): دارای پیچیدگی O(1).
  • pop(0) (اول): دارای پیچیدگی O(n) (به دلیل شیفت دادن بقیه عناصر).
  • len(list): دارای پیچیدگی O(1) (پایتون طول لیست را همیشه ذخیره دارد و نمی‌شمارد).

۴. متدها و مقدار بازگشتی (The None Return Trap)

بسیاری از مبتدیان سعی می‌کنند نتیجه sort() یا append() را در یک متغیر بریزند، که منجر به خطای منطقی می‌شود.

Python

نکته حرفه‌ای: اگر می‌خواهید لیست اصلی دست‌نخورده باقی بماند و یک نسخه مرتب شده جدید داشته باشید، از تابع sorted() (که بیلت-این پایتون است و نه متد لیست) استفاده کنید:

python
# Static Snippet
new_list = sorted(original_list) # Returns a new list