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

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

🐍 HomeOfPython
|
📅 1404/10/16

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

تاپل‌ها (Tuples) در پایتون ساختارهای داده‌ای تغییرناپذیر (Immutable) هستند. این بدان معناست که پس از تعریف، نمی‌توانیم آیتمی را به آن‌ها اضافه، حذف یا ویرایش کنیم. به همین دلیل، برخلاف لیست‌ها که متدهای زیادی مانند append، pop یا sort دارند، تاپل‌ها تنها دو متد داخلی اصلی دارند:

  1. count()
  2. index()

در این بخش به بررسی دقیق این دو متد و کاربرد آن‌ها می‌پردازیم.

ساختار تاپل در پایتون

۱. متد count()

این متد تعداد دفعاتی که یک مقدار خاص در تاپل تکرار شده است را بازمی‌گرداند. اگر مقدار مورد نظر در تاپل وجود نداشته باشد، عدد 0 برگردانده می‌شود.

سینتکس:

python
tuple_name.count(value)

مثال اول: شمارش اعداد

در این مثال ساده، تعداد تکرار عدد ۲ را می‌شماریم.

Python

مثال دوم: شمارش رشته‌ها

این متد به حروف کوچک و بزرگ حساس است (Case-sensitive).

Python

مثال سوم: مقادیر موجود نیست

اگر مقداری را جستجو کنیم که در تاپل نیست، نتیجه صفر خواهد بود.

Python

۲. متد index()

این متد اولین مکانی (Index) که مقدار مورد نظر در آن قرار دارد را برمی‌گرداند. جستجو از اندیس ۰ شروع می‌شود.

نکته مهم: اگر مقدار مورد نظر در تاپل پیدا نشود، پایتون خطای ValueError می‌دهد.

سینتکس:

python
tuple_name.index(value, start, end)
  • value: مقداری که دنبال آن هستیم (الزامی).
  • start: اندیس شروع جستجو (اختیاری).
  • end: اندیس پایان جستجو (اختیاری).

مثال اول: پیدا کردن اندیس ساده

Python

مثال دوم: استفاده از پارامترهای start و end

می‌توانیم محدوده جستجو را محدود کنیم. در اینجا جستجو را از اندیس ۲ شروع می‌کنیم تا دومین "banana" را پیدا کنیم.

Python

مثال سوم: بررسی ساختار متد (بدون اجرا)

گاهی اوقات نیاز است بدانیم تعریف متد چگونه است. کد زیر تنها یک تعریف شماتیک است.

python
# این یک قطعه کد استاتیک برای نمایش تعریف است
def index(self, value, start=0, stop=9223372036854775807):
    """
    Return first index of value.
    Raises ValueError if the value is not present.
    """
    pass

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

در سطح حرفه‌ای، کار با تاپل‌ها فراتر از فراخوانی دو متد ساده است. ما باید درک کنیم چرا متدها محدود هستند، چگونه محدودیت‌ها را دور بزنیم، و چگونه خطاهای احتمالی را مدیریت کنیم. همچنین بررسی Magic Methods (داندر متدها) در تاپل‌ها دید عمیق‌تری به ما می‌دهد.

مدیریت خطا در index()

از آنجایی که متد index() در صورت پیدا نکردن مقدار باعث Crash شدن برنامه می‌شود (با خطای ValueError)، در کدهای حرفه‌ای همیشه باید آن را در بلوک try-except قرار داد یا قبل از آن وجود عضو را چک کرد.

مثال اول: مدیریت خطا با Try-Except

این روش استانداردترین راه برای جلوگیری از توقف برنامه است.

Python

مثال دوم: بررسی با in قبل از index

یک روش جایگزین (و گاهی کندتر به دلیل دو بار پیمایش) استفاده از عملگر in است.

Python

دور زدن محدودیت‌ها (تغییر تاپل)

از آنجا که تاپل متدهای append یا remove ندارد، اگر مجبور به تغییر محتوای آن شدید، الگوی رایج تبدیل به لیست و بازگشت به تاپل است.

هشدار پرفورمنس: این عملیات هزینه بر است و برای داده‌های حجیم توصیه نمی‌شود.

Python

متدهای جادویی (Magic Methods) و عملکرد داخلی

اگرچه ما فقط count و index را به صورت آشکار می‌بینیم، اما تاپل‌ها متدهای داخلی (Dunder Methods) دارند که رفتار آن‌ها را کنترل می‌کند. دانستن این‌ها برای درک عمیق پایتون ضروری است.

  • __len__: توسط تابع len() فراخوانی می‌شود.
  • __contains__: توسط عملگر in فراخوانی می‌شود.
  • __add__: برای اتصال دو تاپل (+).
  • __mul__: برای تکرار تاپل (*).

مثال فنی: مقایسه حجم حافظه (Tuple vs List)

یکی از دلایلی که متدهای تاپل کم هستند، بهینه‌سازی حافظه است. تاپل‌ها متدهای کمتری ذخیره می‌کنند و سربار (Overhead) کمتری دارند.

Python

توابع کمکی به جای متدها

چون تاپل متد sort() یا reverse() ندارد (چون این‌ها درجا یا In-place تغییر ایجاد می‌کنند)، باید از توابع داخلی پایتون استفاده کنیم که خروجی جدید تولید می‌کنند.

Python