نوع داده تاپل (Tuple)، یک مجموعهی داده در پایتون است که با کاما از هم جدا شدهاند. تاپلها از برخی جهات به لیستها شباهت دارند. مثلا هر دو شمارهگذاری (indexing) مشابهی دارند و مجاز به داشتن اعضای تکراری هستند. اما برخلاف دادههای لیست که قابل تغییر هستند، دادههای تاپل را نمیتوان به صورت مستقیم تغییر داد. مزیت این نوع داده نسبت به لیست، سرعت آن است. در این بخش از آموزش پایتون، با ویژگیها و قواعد مهم نوع داده tuple آشنا خواهید شد.
tuple در پایتون
Tuple در پایتون، مجموعهای است دارای ترتیب، غیر قابل تغییر و مجاز به داشتن اعضای تکراری. برای تعریف تاپل در پایتون، از علامت پرانتز () استفاده میکنیم و اعضا را با کاما , از یکدیگر جدا میکنیم. در مثال زیر یک تاپل ایجاد میکنیم و آن را در خروجی چاپ میکنیم.
مثال #۱: ساختن یک tuple
1 2 3 |
dataScienceJobs = ("data analyst", "data architect", "data scientist", "data mining engineer") print(dataScienceJobs) |
خروجی #۱:
1 |
('data analyst', 'data architect', 'data scientist', 'data mining engineer') |
دسترسی به اعضای tuple
شمارهگذاری (indexing) اعضای tuple بسیار مشابه listها در پایتون است. برای دسترسی به عضو مورد نظر در تاپل، کافیست ایندکس آن را درون براکت [] ارجاع دهید. در مثال زیر، این موضوع برایتان کاملا روشن خواهد شد.
مثال #۲: حال میخواهیم به اعضای تاپلی که در مثال قبل ساختیم، دسترسی پیدا کنیم
1 2 3 |
dataScienceJobs = ("data analyst", "data architect", "data scientist", "data mining engineer") print("I want to be a " + dataScienceJobs[2]) |
خروجی #۲:
1 |
I want to be a data scientist |
شمارهگذاری منفی تاپل
شمارهگذاری منفی از انتها انجام میشود. شمارندهی -۱ آخرین عضو، شمارندهی -۲ عضو یکی مانده به آخر و به همین ترتیب تا اولین عضو ادامه پیدا میکند.
مثال #۳:
1 2 3 |
dataScienceJobs = ("data analyst", "data architect", "data scientist", "data mining engineer") print("I want to be a " + dataScienceJobs[-3]) |
خروجی #۳:
1 |
I want to be a data architect |
تعیین نقطهی شروع و پایان اعضای تاپل
شما میتوانید با تعیین نقطهی شروع و پایان شمارهگذاری، به بازهای از اعضای tuple دسترسی پیدا کنید. وقتی از این روش استفاده میکنید، مقدار خروجی، یک تاپل جدید با اعضای مشخصشده خواهد بود.
مثال #۴:
1 2 3 |
myFruits = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango") print("I'll eat these fruits today:", myFruits[2:5]) |
خروجی #۴:
1 |
I'll eat these fruits today: ('cherry', 'orange', 'kiwi') |
نکته: در این روش، باید دقت داشته باشید که ابتدای بازه در خروجی ظاهر میشود، اما انتهای آن، نه. |
اگر میخواهید انتخاب اعضا از آخر شروع شود، از شمارهگذاری منفی استفاده کنید.
مثال #۵:
1 2 3 |
myFruits = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango") print("I'll eat these fruits today:", myFruits[-5:-2]) |
خروجی #۵:
1 |
I'll eat these fruits today: ('cherry', 'orange', 'kiwi') |
استفاده از حلقهی for در tuple
با استفاده از حلقهی for نیز میتوان به اعضای درون تاپل دسترسی پیدا کرد. در آینده با حلقهی for در پایتون بیشتر آشنا خواهید شد.
مثال #۷:
1 2 3 4 |
thistuple = ("apple", "banana", "cherry") for x in thistuple: print(x) |
خروجی #۷:
1 2 3 |
apple banana cherry |
تغییر اعضای tuple در پایتون
وقتی یک تاپل ساخته میشود، دیگر امکان تغییر مقادیر آن وجود نخواهد داشت. اما میتوانید با ترفندی ابتدا آن را به لیست تبدیل کنید، لیست را تغییر دهید، و سپس آن لیست را به تاپل تبدیل کنید.
مثال #۶:
1 2 3 4 5 6 |
bestMovies = ("Cinema Paradiso", "Schindler's List", "The Avengers") tempList = list(bestMovies) tempList[2] = "Léon: The Professional" # I don't like The Avengers! bestMovies = tuple(tempList) print("My favorite moveis are:", bestMovies) |
خروجی #۶:
1 |
My favorite moveis are: ('Cinema Paradiso', "Schindler's List", 'Léon: The Professional') |
بررسی وجود یک عضو در تاپل
برای بررسی وجود داشتن یک عضو خاص در یک تاپل از کلیدواژهی in استفاده کنید.
مثال #۸:
1 2 3 4 5 6 |
bestMusicians = ("Led Zeppelin", "David Bowie", "John Lennon", "David Gilmour", "Freddie Mercury") if "Justin Bieber" in bestMusicians: print("Justin Bieber is one of the best musicians!") else: print("Nope! Justin Bieber is definitely NOT one of the best musicians!") |
خروجی #۸:
1 |
Nope! Justin Bieber is definitely NOT one of the best musicians! |
بررسی طول tuple در پایتون
برای بررسی تعداد اعضای تاپل در پایتون، از تابع ()len استفاده کنید.
مثال #۹:
1 2 3 |
favoriteMovies = ("Cinema Paradiso", "Schindler's List", "Léon: The Professional") print("Number of my favorite movies:", len(favoriteMovies)) |
خروجی #۹:
1 |
Number of my favorite movies: 3 |
افزودن عضو به اعضای tuple در پایتون
همانطور که گفتیم اعضای تاپل غیرقابل تغییر هستند. بنابراین بعد از ساخت تاپلها نمیتوان به آنها عضوی افزود؛ اگر سعی کنید عضوی به یک تاپل اضافه کنید، با خطای TypeError مواجه خواهید شد.
مثال #۱۰:
1 2 3 |
thistuple = ("apple", "banana", "cherry") thistuple[3] = "orange" # This will raise an error print(thistuple) |
خروجی #۱۰:
1 |
TypeError: 'tuple' object does not support item assignment |
ساخت تاپل با یک عضو
برای ساخت یک تاپل که فقط یک عضو دارد، باید حتما پس از آن عضو کاما قرار دهید. در غیر این صورت، پایتون متغیر را به عنوان تاپل تشخیص نمیدهد.
مثال #۱۱:
1 2 3 4 5 6 |
thisTuple = ("tuple",) print(type(thisTuple)) # NOT a tuple notTuple = ("not a tuple") print(type(notTuple)) |
خروجی #۱۱:
1 2 |
<class 'tuple'> <class 'str'> |
حذف tuple در پایتون
نکته: شما نمیتوانید اعضای داخل تاپل را حذف کنید. |
چون تاپلها تغییر ناپذیرند، نمیتوانید از آنها عضوی حذف کنید؛ اما میتوانید آنها را به طور کلی حذف کنید.
مثال #۱۲:
1 2 3 4 5 |
badTuple = ("this", "tuple", "is", "useless") del badTuple print(badTuple) #this will raise an error because the tuple no longer exists |
خروجی #۱۲: NameError
اتصال تاپلها به یکدیگر
برای اتصال دو یا چند تاپل به یکدیگر، از عملگر + استفاده کنید.
مثال #۱۳:
1 2 3 4 5 |
tuple1 = ("a", "b" , "c") tuple2 = (1, 2, 3) tuple3 = tuple1 + tuple2 print(tuple3) |
خروجی #۱۳:
1 |
('a', 'b', 'c', 1, 2, 3) |
ساخت تاپل با متد tuple
علاوه بر روش معمول، برای ساخت تاپل در پایتون میتوان از متد سازندهی ()tuple نیز استفاده کرد.
مثال #۱۴:
1 2 3 |
characters = tuple(("a", "b", "c")) # note the double round-brackets print(characters) |
1 |
('a', 'b', 'c') |
سایر متدهای تاپل در پایتون
متد | توضیحات متد |
()count | تعداد متغیرهایی را که مقداری مشخص دارند برمیگرداند |
()index | ایندکس یک عضو مشخص را بر میگرداند |
ممنون