رفتن به مطلب اصلی

تاپل

تاپل (tuple) یکی دیگه از انواع کالکشن توی زبان پایتونه. تاپل تا حد زیادی شبیه لیست هست یعنی مجموعه ای از عناصر که به ترتیب توی ظرف قرار میگیرن و میشه با ایندکس به اونها دسترسی داشت. ولی دوتا تفاوت عمده داره با لیست؛ یکی اینکه توی پرانتز ( ) تعریف میشه و اینکه عناصرش قابل تغییر نیستن! تاپل زیر رو ببینید:

heyvanat_tuple = ('gorbe', 'sag', 'khargoush')

یک تاپل به اسم heyvanat_tuple تعریف کردیم که سه تا حیوون توشه.

کد زیر عنصر اول رو پرینت میکنه:

print(heyvanat_tuple[0])

کد زیر عنصر دوم تا آخر رو پرینت میکنه:

print(heyvanat_tuple[1:])

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

کد زیر تعداد کلمه 'sag' رو نشون میده:

print(heyvanat_tuple.count('sag'))

کد زیر ایندکس 'sag' رو نشون میده (دقت کنید که اگر سه تا از این عنصر داشته باشیم، این دستور اولین ایندکس رو نشون میده)

print(heyvanat_tuple.index('sag'))

اما کد زیر اجرا نمیشه چون ما نمیتونیم چیزی به تاپل اضافه کنیم:

heyvanat_tuple.append('mahi')

کد زیر هم اجرا نمیشه چون عناصر تاپل قابل تغییر نیستن:

heyvanat_tuple[2] = 'khers'

حالا این همه ازت اپل حرف زدیم، چیزی که نشه تغییرش داد به چه دردی میخوره؟ باید گفت که تاپل برای جاهاییه که یه دسته از اطلاعات داریم و نمیخوایم مقادیرشون توی مرور زمان تغییر کنه. مثلا برنامه ای دارین که از روزهای هفته استفاده میکنه. اسم روزهای هفته همیشه باید ثابت باشه پس از تاپل استفاده می کنیم که اشتباها یکجا تغییر ندیم اسماشون رو. یا مثلا کد ملی آدمها هیچوقت عوض نمیشه. یا توی یه شرکت هیچوقت کد پرسنلی عوض نمیشه.

یه مورد جالب دیگه که توش 2 تا نکته هست. تابع زیر رو در نظر بگیرید:

def tuple_func():
return 15, 12
x, y = tuple_func()
print(x,y)
z = tuple_func()
print(z)

توی کد بالا یک تابع تعریف کردیم که دوتا مقدار برمیگردونه. پایتون وقتی ببینه که هیچ پرانتز یا براکتی دور مقادیر نیست، اونها رو به عنوان تاپل در نظر میگیره. همچنین اگر دقت کنید، دوتا متغیر به اسم x و y تعریف کردیم که مقادیری که تابع برمیگردونه رو توی اونها میذاریم. این مدل تعریف کردن هم کاربرد خودش رو داره و جالبه. ولی توی خط بعدی متغیر z، هر دو مقداری که تابع برمیگردونه رو توی خودش میذاره. الان z یک تاپله (دقت کنید که موقع پرینت کردن z، پرانتز میذاره پایتون که یعنی تاپل).