tuple ها در پایتون مجموعه هایی منظم (ordered) و غیرقابل تغییر/ویرایش (unchangeable) هستند. برای استفاده از Tuple ها در زبان پایتون باید از علامت پرانتز استفاده کنید:
thistuple = ("apple", "banana", "cherry") print(thistuple)
خروجی:
('apple', 'banana', 'cherry')
نکته ی مهم: اگر Tuple شما فقط یک عضو دارد باز هم باید در انتهای آن یک ویرگول انگلیسی قرار دهید. در غیر این صورت پایتون نمی فهمد که متغیر ما از نوع Tuple است:
thistuple = ("apple",) print(type(thistuple)) #NOT a tuple thistuple = ("apple") print(type(thistuple))
خروجی:
<class 'tuple'>
<class 'str'>
همانطور که می بنید Tuple دوم ما به عنوان یک رشته (str) در نظر گرفته شده است.
برای دسترسی به اعضای Tuple باید به شماره ی index آن ها اشاره کنید:
thistuple = ("apple", "banana", "cherry") print(thistuple[1])
خروجی banana خواهد بود.
توجه داشته باشید که اگر index را به صورت منفی بدهید، شمارش از انتهای Tuple شروع خواهد شد (عضو آخر به عضو اول). به مثال زیر توجه کنید:
thistuple = ("apple", "banana", "cherry") print(thistuple[-1])
خروجی cherry خواهد بود.
همچنین اگر چند عضو از اعضای Tuple را میخواهید، می توان از Range با قالب x:y
استفاده کرد؛ در این حالت x عضو اول و y عضو آخر است. اگر از چنین حالتی استفاده کنید تمام اعضای بین X و y به شما داده خواهد شد:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango") print(thistuple[2:5])
خروجی:
('cherry', 'orange', 'kiwi')
این کد اعضای 2 تا 5 را به ما می دهد البته به صورتی که خود عضو 5 را شامل نمی شود. همچنین امیدوارم یادتان نرفته باشد که index ها از صفر شروع می شوند.
نکته: اگر از range استفاده کنید، مقدار برگشتی یک Tuple کاملا جدید و مستقل خواهد بود.
شما می توانید range ها را نیز به صورت index منفی کدنویسی کنید. به طور مثال:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango") print(thistuple[-4:-1])
خروجی:
('orange', 'kiwi', 'melon')
مثل همیشه عضو پایانی (ایندکس 1-) شامل range نمی شود.
زمانی که یک Tuple ساخته می شود دیگر نمی توان آن را تغییر داد؛ به اصطلاح برنامه نویسی immutable یا unchangeable هستند اما روشی برای دور زدن این محدودیت وجود دارد؛ ما می توانیم Tuple را به یک list تبدیل کرده و پس از ویرایش آن را دوباره به Tuple تبدیل کنیم:
x = ("apple", "banana", "cherry") y = list(x) y[1] = "kiwi" x = tuple(y) print(x)
خروجی:
("apple", "kiwi", "cherry")
البته سعی کنید در صورت نیاز به تغییر از Tuple ها استفاده نکنید. سعی کنید از همان اول درک کنید که داده های شما نیاز به تغییر دارند یا خیر و سپس بر اساس آن یکی از «مجموعه ها» در پایتون را انتخاب کنید.
همچنین هیچ راهی برای اضافه کردن عناصر به Tuple ها وجود ندارد:
thistuple = ("apple", "banana", "cherry") thistuple[3] = "orange" # This will raise an error print(thistuple)
خروجی:
TypeError: 'tuple' object does not support item assignment
مگر اینکه دوباره آن را تبدیل به list کنید.
همچنین حذف یک یا چند عضو از اعضای Tuple در حالت عادی غیر ممکن است چرا که Tuple ها قابل ویرایش نیستند اما می توانید خود Tuple را به صورت کامل حذف کنید:
thistuple = ("apple", "banana", "cherry") del thistuple print(thistuple)
خروجی:
NameError: name 'thistuple' is not defined
همانطور که می بینید Tuple به راحتی حذف شده است.
می توانید به سادگی و با استفاده از یک حلقه ی for درون Tuple ها گردش کنید:
thistuple = ("apple", "banana", "cherry") for x in thistuple: print(x)
خروجی:
apple
banana
cherry
ما می توانیم با استفاده از کلیدواژه ی in
، حضور یا عدم حضور یک عنصر خاص را در Tuple مورد نظر بررسی کنیم:
thistuple = ("apple", "banana", "cherry") if "apple" in thistuple: print("Yes, 'apple' is in the fruits tuple")
قاعدتا خروجی برابر است با:
Yes, 'apple' is in the fruits tuple
اما اگر فقط تعداد عناصر موجود در Tuple را می خواهید می توانید از تابع ()len
استفاده کنید:
thistuple = ("apple", "banana", "cherry") print(len(thistuple))
خروجی عدد 3 خواهد بود.
همچنین اگر می خواهید بدانید یک عضو چند بار در Tuple خاصی حضور دارد می توانید از متد ()count
استفاده کنید:
thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5) x = thistuple.count(5) print(x)
خروجی عدد 2 است چرا که عضو 5 دو بار در Tuple حضور داشته است.
از طرفی اگر بخواهید index یک عضو در Tuple را پیدا کنید متد ()index
بسیار کاربردی است:
thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5) x = thistuple.index(8) print(x)
خروجی عدد 3 است چرا که عضو 8 دارای ایندکس 3 است (ایندکس ها از صفر شروع می شوند).
شما می توانید دو یا چند Tuple را در هم ادغام کنید. برای این کار باید از اپراتور +
استفاده کرد:
tuple1 = ("a", "b" , "c") tuple2 = (1, 2, 3) tuple3 = tuple1 + tuple2 print(tuple3)
خروجی:
('a', 'b', 'c', 1, 2, 3)
در زبان پایتون یک constructor نیز برای Tuple ها موجود است که میتوان با استفاده از آن Tuple های جدید را ساخت. مثال:
thistuple = tuple(("apple", "banana", "cherry")) print(thistuple)
خروجی:
('apple', 'banana', 'cherry')
امیدوارم به خوبی با Tuple ها آشنا شده باشید. یادتان باشد که از انواع مجموعه ها در زبان پایتون (که معادل آرایه در زبان های دیگر هستند) باید آن مجموعه ای را انتخاب کنید که متناسب با برنامه ی شما باشد. به طور مثال اگر قرار است مقداری را در برنامه ی خود مدام تغییر دهید نباید از Tuple ها استفاده کنید چرا که Tuple ها تغییرناپذیر هستند؛ استفاده از برخی کلک ها مانند تبدیل کردن آن ها به لیست و سپس به تبدیل دوباره به Tupple تنها برنامه ی شما را کندتر و شلوغ تر خواهد کرد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.