چند تایی مرتب یا tuple در پایتون
در این مقاله از مجموعه آموزش پایتون در وب سایت ترواَنس نوع دادهی tuple یا چند تایی مرتب همراه با مثالهایی که با استفاده از پایتون ۳.۸.۳ روی کامپیوتر من اجرا شده است را بررسی و یاد میگیریم.
یک tuple مجموعهای از دادههای مرتب و غیر قابل تغییر است یعنی بعد از نمتوان عناصر آن را تغییر داد.چندتایی مرتب در پایتون با استفاده از () تعریف میشوند.
در تکه کد زیر یک چندتایی مرتب تعریف و چاپ شده است.
┌─[trueans@parrot]─[~]
└──╼ $python3
Python 3.8.3 (default, May 14 2020, 11:03:12)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> my_tuple=('apple','bnnana','cherry',2)
>>> print(my_tuple)
('apple', 'bnnana', 'cherry', 2)
دستیابی یا به عبارتی دیگر خواندن اعضای یک چند تایی مرتب در پایتون
همانند لیست ها در پایتون اعضای tuple نیز با استفاده از اندیس عضو مورد نظر قابل دستیابی است.
جهت دستیابی به عنصری از tuple ابتدا نام آن را بنویسید و سپس اندیس مورد نظرتان را داخل یک زوج براکت جلوی نام tuple بنویسید.
>>> my_tuple=('apple','bnnana','cherry',2)
>>> print(my_tuple[0])
apple
>>> print(my_tuple[2])
cherry
دقت کنید که در پایتون تمامی اندیسها از صفر شروع میشود.
اندیس منفی
در پایتون شما میتوانید از اندیسهای منفی نیز استفاده کنیددر این صورت شمارش از آخرین عنصر شروع میشود و اندیس آن ۱- است و عنصر بعدی ۲- و … .
>>> my_tuple=('apple','bannana','cherry',2)
>>> print(my_tuple[-1])
۲
>>> print(my_tuple[-2])
cherry
برش چندتایی مرتب یا tupleها در پایتون
همانند لیستها با مشخص کردن یک محدوده از اندیسها میتوان زیر مجموعهای tuple را از tuple دیگر جدا کرد و یا به عبارت دیگر برش زد.
برای برش زدن tuple ها در پایتون ابتدا اولین عنصر و سپس آخرین عنصر مورد نظر را داخل یک جفت براکت جلوی نام لیست مینویسیم و با استفاده از ‘:’ از هم جدا میکنیم.در این صورت یک زیر مجموعه از tuple ها را برمیگرداند.
>>> thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
>>> print(thistuple[2:5])
('cherry', 'orange', 'kiwi')
دقت کنید که tuple ایجاد شده از اندیس ۲ شروع شده است و شامل عنصر با اندیس ۲ است و با اندیس ۵ تمام شده است که عنصر با اندیس ۵ عضو لیست جدید نیست.
برش tuple با استفاده از اندیس منفی در پایتون
با استفاده از اندیس منفی نیز میتوان چندتایی مرتب را برش داد و قسمتی از یک چندتایی مرتب را جدا کرده و یک چندتایی مرتب ایجاد کرد.
اگر از اندیس منفی استفاده کنید شمارش از آخرین عنصر شروع میشود.و اندیس اولین عنصر که مشخص میکنید باید کوچکتر از اندیس آخرین عنصر مشخص شده باشد.
>>> my_tuple=('amir','ali',1,2,True)
>>> print(my_tuple[-3:-1])
(۱, ۲)
دقت کنید که tuple ایجاد شده شامل اولین عنصر است(عنصری که اندیسش ۳- است) اما آخرین عنصر مشخص شده(اندیس ۱-) عضو tuple ایجاد شده نیست.
تغییر عناصر tuple در پایتون
به طور طبعی اعضای tuple یا چندتایی مرتب در پایتون قابل تغییر نمیباشد. اما راه حلی است که میتوان آنها را تغییر داد.
در این راهحل ابتدا tuple را با استفاده از تابع توکار یا سازندهی list()
به لیست تبدیل میکنیم و بعد از تغییر عنصر مورد نظر دوباره آن را با استفاده از تابع توکار یا سازندهی ()tuple
به tuple تبدیل میکنیم.
>>> x=('programmer','developer','designer')
>>> print(x)
('programmer', 'developer', 'designer')
>>> y=list(x)
>>> print(y)
['programmer', 'developer', 'designer']
>>> y[2]='manager'
>>> print(y)
['programmer', 'developer', 'manager']
>>> x=tuple(y)
>>> print(x)
('programmer', 'developer', 'manager')
ایجاد حلقه روی tuple در پایتون
با استفاده از حلقههای میتوان یک tuple را پیمایش کرد.
>>> tuple=('bannana','apple')
>>> for x in tuple:
... print(x)
...
bannana
apple
حلقهی for
ایجاد شده در تکه کد بالا معادل حلقهی while
ریز است.
>>> tuple=('apple','orange')
>>> i=0
>>> while i<len(tuple):
... print(tuple[i])
... i+=1
...
apple
orange
تست عضویت در tuple
برای تست عضویت یا عدم عضویت متغیر یا دادهای در tuple از عمگرهای عضویت در پایتون استفاده میشود.
>>> tuple=('apple','orange')
>>> print('apple' in tuple)
True
>>> print('bannana' in tuple)
False
>>> tuple=('برنامه نویس','طراحی وب سایت')
>>> if 'برنامه نویس' in tuple:
... print('برنامه نویس عضو چندتایی است')
...
برنامه نویس عضو چندتایی است
طول tuple یا چندتایی مرتب در پایتون
با استفاده از تابع ()len
توکار طول چندتایی مرتب را می توان به دست آورد.
>>> x=('تبریز','تهران','اصفهان')
>>> print(len(x))
۳
افزودن عنصر به tuple یا چندتایی مرتب در پایتون
tuple ها تغییر ناپذیر هستند لذا در حالت عادی افزودن عضو به tuple ها امکان پذیر نمیباشد.
ایجاد tuple با یک عنصر
اگر tuple شما فقط یک عضو داشته باشد پایتون نمیتوانید تشخیص دهد که دادهی مورد نظر شما یک tuple یا چندتایی مرتب است برای این که به پایتون بفهمانیم که منظور ما ایجاد tuple بوده است یک ‘,’ بعد از تنها عنصر اضافه میکنیم.
>>> t=('apple')
>>> print(type (t))
<class 'str'>
>>> print(t)
apple
>>> t1=('apple',)
>>> print(type(t1))
<class 'tuple'>
حذف یک آیتکم از tuple
با توجه به این که tuple ها در پایتون غیر قابل تغییر هستند نمیتوان تنها یک عنصر از tuple را تغییر داد.اما میتوانید خود tuple را به صورت کلی حذف کرد.
>>> t=('apple','orange')
>>> del t
>>> print(t)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 't' is not defined
الحاق دو tuple یا چند تایی مرتب در پایتون
همانند لیستها برای الحاق دو چندتایی مرتب یا tuple میتوانید از عمگر +
استفاده نمائید.
>>> t1=('apple',)
>>> t2=('orang',)
>>> t=t1+t2
>>> print(t)
('apple', 'orang')
سازندهی tuple
گاهی اوقات ممکن است برای ایجاد یک tuple از ()tuple
استفاده نمائید. مثل زمانی که میخواهید لیست به tuple تبدیل نمائید.
>>> t=tuple(('apple','bannana'))
>>> print(t)
('apple', 'bannana')
توابع tuple در پایتون
پایتون دو تابع توکار برای tuple دارد.
تابع count()
در پایتون
این تابع در پایتون یک عضو را میگیرد و تعداد تکرار آن عضو را در tuple برمیگرداند.
>>> t=(1,2,3,4,5,6,4,3)
>>> x=t.count(4)
>>> print(x)
۲
تابع index()
در پایتون
این تابع یک شی را گرفته و از سمت چپ به دنبال شی مورد نظر میگردد و اندیس نخستین مورد یافته شده را برمیگرداند. چنانچه شی مورد نظر موجود نباشد یک خطا برمیگرداند.
>> t=(1,2,3,4,5,6,4,3)
>>> t.index(4)
۳
>>> t.index(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple