نوع داده tuple در پایتون
در پایتون، ۶ نوع داده (Data Type) با نامهای عدد (number)، لیست (list)، تاپل (Tuple)، رشته (String)، مجموعه (Set) و دیکشنری (Dictionary) وجود دارد. در این آموزش به نوع داده tuple خواهیم پرداخت.
نوع داده تاپل در پایتون
Tuples که یک داده ساختار Built-in است، درست شبیه لیست ها میباشند با این تفاوت که شما نمیتوانید مقادیر آنها را ویرایش کنید. مقادیر اولیه که برای تاپل ها تعیین میکنید، تا آخر برنامه ثابت باقی میمانند و قابل تغییر نیستند.
اما این غیرقابل تغییر بودن چه اهمیتی دارد که بخواهیم تاپل را جایگزین لیست نماییم؟ برای مثال فرض نمایید می خواهید یکسری مقصد مشخص را برای خرید بلیت هواپیما تعیین کنید که قابل تغییر نیز نباشند. در اینجا مجبور هستید که از تاپل استفاده کنید و لیست به کار شما نمی آید.
تفاوت بنیادین میان list ها و tuple ها این است که لیست ها داخل آکولاد [] مشخص می شوند و نیز اندازه آن ها تغییر پذیر است، در حالی که tuple ها درون پرانتز تعریف می شوند و قابلیت بروز رسانی را ندارند. tuple را می توان لیست های فقط خواندنی نیز نام گذاشت.
tuple1 = (1, 5, 9, 12, 15, 18)
tuple2 = (1, “Py”, 7.3)
tuple3 = (7, (5.2, 6.6, 4.5), 99)
روش دسترسی داشتن به عناصر یک Tuple
راهکارهای مختلفی برای دسترسی به عناصر یک تاپل وجود دارد. در ادامه، هر یک از این موارد تشریح شدهاند.
اندیس لیست
میتوان از عملگر «اندیس»، برای دسترسی داشتن به یک عنصر از تاپل، استفاده کرد. اندیس تاپل ها در پایتون از عدد ۰ شروع میشود. بنابراین، برای تاپلی که حاوی ۶ عنصر است، اندیس تاپل از ۰ تا ۵ است. برای مثال اگر بخواهیم از tuple2 که در بالا تعریف شده عنصر سوم یعنی ۷.۳ را فراخوانی کنیم باید بنویسیم:
print(tuple2[2])
در مثالی دیگر اگر بخواهیم عنصر ۴.۵ را از tuple3 فراخوانی نماییم باید از اندیس دهی تودرتو استفاده کنیم که می شود:
print(tuple3[1][2])
اندیسدهی منفی
پایتون، امکان اندیسدهی منفی برای یک توالی را نیز فراهم می کند. اندیس ۱- به آخرین عنصر از تاپل و ۲- به عنصر یکی مانده به آخر اشاره دارد و به همین ترتیب میتوان با اندیسدهی منفی، عناصر تاپل را از آخر به اول فراخوانی کرد. در tuple2 اگر بخواهیم عنصر py را فراخوان نماییم باید بنویسیم:
print(tuple2[-2])
دسترسی به چند عنصر
میتوان به طیف وسیعی از عناصر تاپل با استفاده از عملگر دونقطه (colon) دسترسی داشت. برای مثال در tuple1 اگر بخواهیم از عنصر ۳ تا ۵ را فراخوان کنیم باید بنویسیم:
print(tuple1[2:4]