Tuple ها در پایتون
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
برای دسترسی به اعضای 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 ها را نیز به صورت index منفی کدنویسی کنید. به طور مثال:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango") print(thistuple[-4:-1])
خروجی:
('orange', 'kiwi', 'melon')
مثل همیشه عضو پایانی (ایندکس 1-) شامل range نمی شود.
ویرایش Tuple ها
زمانی که یک 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 به راحتی حذف شده است.
گردش در Tuple ها
می توانید به سادگی و با استفاده از یک حلقه ی for درون Tuple ها گردش کنید:
thistuple = ("apple", "banana", "cherry") for x in thistuple: print(x)
خروجی:
apple
banana
cherry
حضور یا عدم حضور و تعداد عناصر Tuple
ما می توانیم با استفاده از کلیدواژه ی 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 ها
شما می توانید دو یا چند Tuple را در هم ادغام کنید. برای این کار باید از اپراتور +
استفاده کرد:
tuple1 = ("a", "b" , "c") tuple2 = (1, 2, 3) tuple3 = tuple1 + tuple2 print(tuple3)
خروجی:
('a', 'b', 'c', 1, 2, 3)
tuple() Constructor
در زبان پایتون یک constructor نیز برای Tuple ها موجود است که میتوان با استفاده از آن Tuple های جدید را ساخت. مثال:
thistuple = tuple(("apple", "banana", "cherry")) print(thistuple)
خروجی:
('apple', 'banana', 'cherry')
امیدوارم به خوبی با Tuple ها آشنا شده باشید. یادتان باشد که از انواع مجموعه ها در زبان پایتون (که معادل آرایه در زبان های دیگر هستند) باید آن مجموعه ای را انتخاب کنید که متناسب با برنامه ی شما باشد. به طور مثال اگر قرار است مقداری را در برنامه ی خود مدام تغییر دهید نباید از Tuple ها استفاده کنید چرا که Tuple ها تغییرناپذیر هستند؛ استفاده از برخی کلک ها مانند تبدیل کردن آن ها به لیست و سپس به تبدیل دوباره به Tupple تنها برنامه ی شما را کندتر و شلوغ تر خواهد کرد.