آموزش تاپل یا چندتایی در پایتون
منبع: https://rasanika.com
تاپل (Tuple) یا چندتایی در پایتون به این صورت تعریف می شود:
mytuple = ("apple", "banana", "cherry")
تاپل ها برای ذخیره چندین آیتم در یک متغیر استفاده می شوند.
Tuple یکی از 4 نوع داده داخلی در پایتون است که برای ذخیره و کار با مجموعه داده ها استفاده می شود، 3 نوع دیگر List ، Set و Dictionary هستند که همگی کیفیت ها و کاربردهای متفاوتی دارند.
تاپل دارای ترتیب و غیرقابل تغییر است.
مثال
یک Tuple ایجاد کنید:
thistuple = ("apple", "banana", "cherry")
print(thistuple)
آیتم های تاپل
آیتم های تاپل دارای ترتیب و غیرقابل تغییر هستند و همچنین می توانند تکراری باشند.
هر آیتم دارای ایندکس (نمایه) است، آیتم اول ایندکس [0]
، دوم ایندکس [1]
و به این صورت تا آخر.
ترتیب
وقتی می گوییم تاپل ها دارای ترتیب هستند به این معنی است که آیتم ها دارای ترتیب مشخصی هستند و این ترتیب تغییر نمی کند.
غیر قابل تغییر
تاپل ها غیر قابل تغییر هستند، به این معنی که پس از ایجاد تاپل، نمی توانیم آیتمی را تغییر داده، اضافه یا حذف کنیم.
مجاز به موارد تکراری
از آنجایی که تاپل ها ایندکس می شوند، می توانند مواردی با مقدار یکسان داشته باشند:
مثال:
thistuple = ("apple", "banana", "cherry", "apple", "cherry")
print(thistuple)
طول تاپل
برای تعیین تعداد آیتم های یک تاپل، از تابع len()
استفاده کنید:
مثال
چاپ تعداد آیتم ها در تاپل:
thistuple = ("apple", "banana", "cherry")
print(len(thistuple))
ایجاد تاپل فقط با یک آیتم
برای ایجاد یک تاپل تنها با یک آیتم، باید یک کاما بعد از آیتم اضافه کنید، در غیر این صورت پایتون آن را به عنوان یک تاپل تشخیص نخواهد داد.
مثال:
thistuple = ("apple",)
print(type(thistuple))
#NOT a tuple
thistuple = ("apple")
print(type(thistuple))
نوع داده آیتم های تاپل
آیتم های داخل یک تاپل می توانند از هر نوع داده ای تشکیل شده باشند:
مثال
tuple1 = ("apple", "banana", "cherry")
tuple2 = (1, 5, 7, 9, 3)
tuple3 = (True, False, False)
یک تاپل می تواند شامل ترکیبی از انواع داده های مختلف باشد:
مثال
tuple1 = ("abc", 34, True, 40, "male")
type()
از دیدگاه پایتون، تاپل ها به عنوان اشیایی با نوع داده "tuple" تعریف می شوند:
<class 'tuple'>
مثال
mytuple = ("apple", "banana", "cherry")
print(type(mytuple))
tuple()
همچنین می توان از ()tuple برای ساختن یک تاپل استفاده کرد.
مثال
thistuple = tuple(("apple", "banana", "cherry")) # note the double round-brackets
print(thistuple)
آرایهها (دادههای گروهی) در پایتون
چهار نوع داده برای کار با مجموعه ای از داده ها در زبان برنامه نویسی پایتون وجود دارد:
لیست مجموعه ای مرتب و قابل تغییر است. اعضای تکراری مجاز است.
تاپل مجموعه ای مرتب و غیرقابل تغییر است. اعضای تکراری مجاز است.
ست مجموعه ای نامرتب و غیرقابل تغییر* و ایندکس نشده است. بدون عضو تکراری.
دیکشنری مجموعه ای مرتب** و قابل تغییر است. بدون عضو تکراری.
* آیتم های ست غیرقابل تغییر هستند، اما هر زمان که بخواهید می توانید آیتم ها را حذف و/یا اضافه کنید.
**از نسخه 3.7 پایتون، دیکشنری ها دارای ترتیب هستند. در پایتون 3.6 و نسخه های قبلی، دیکشنری ها نامرتب هستند.
دسترسی به آیتم های تاپل
می توانید با مراجعه به شماره ایندکس به آیتم های Tuple دسترسی پیدا کنید:
مثال
مورد دوم را در تاپل چاپ کنید:
thistuple = ("apple", "banana", "cherry")
print(thistuple[1])
توجه: اولین آیتم دارای اندیس 0 است.
ایندکس منفی
نمایه سازی یا ایندکس منفی یعنی از آخر شروع کردن.
-1
به آخرین آیتم اشاره دارد، -2
به دومین مورد از آخر و به همین ترتیب.
مثال
آخرین مورد از تاپل را چاپ کنید:
thistuple = ("apple", "banana", "cherry")
print(thistuple[-1])
محدوده ای از اندیس ها
شما می توانید محدوده ای از ایندکس ها را با تعیین فقط شروع و پایان مشخص کنید.
هنگام تعیین محدوده، مقدار بازگشتی یک تاپل جدید با موارد مشخص شده خواهد بود.
مثال
مورد سوم، چهارم و پنجم را برگردانید:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:5])
مثال بالا از نمایه 2 (شامل آن) شروع می شود و در نمایه 5 (بدون آن) پایان می یابد.
با حذف مقدار شروع، محدوده از اولین آیتم شروع می شود:
این مثال آیتم ها را از ابتدا به "kiwi" باز می گرداند، اما شامل آن نمی شود:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[:4])
با کنار گذاشتن مقدار پایانی، محدوده تا انتهای تاپل ادامه مییابد:
این مثال موارد را از "cherry" به انتها برمی گرداند:
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:])
محدوده اندیس های منفی
اگر میخواهید جستجو را از انتهای تاپل شروع کنید، از اندیسهای منفی استفاده کنید:
مثال
این مثال آیتم ها را از اندیس -4 (شامل آن) به اندیس -1 (بدون آن) برمی گرداند.
thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[-4:-1])
بررسی وجود یک آیتم
برای فهمیدن اینکه آیا یک آیتم مشخص در یک تاپل وجود دارد یا خیر از کلیدواژه in
استفاده کنید:
مثال
بررسی کنید که آیا "apple" در تاپل وجود دارد یا خیر:
thistuple = ("apple", "banana", "cherry")
if "apple" in thistuple:
print("Yes, 'apple' is in the fruits tuple")
بروزرسانی تاپل ها
تاپل ها غیر قابل تغییر هستند، یعنی شما نمی توانید پس از ایجاد یک تاپل، آیتم هایش را تغییر داده، اضافه یا حذف کنید.
اما راههایی برای دور زدن آن وجود دارد.
تغییر مقادیر Tuple
هنگامی که یک تاپل ایجاد می شود، نمی توانید مقادیر آن را تغییر دهید. تاپل ها غیرقابل تغییر، یا همان طور که معمولا گفته می شود immutable هستند.
اما یک راه حل وجود دارد. شما می توانید تاپل را به یک لیست تبدیل کنید، لیست را تغییر دهید، و لیست را دوباره به یک تاپل تبدیل کنید.
مثال
x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)
print(x)
افزودن آیتم جدید
از آنجایی که تاپل ها تغییر ناپذیر هستند، متدی مثل append()
ندارند، اما راه های دیگری برای افزودن آیتم ها به تاپل وجود دارد.
1. تبدیل به یک لیست: درست مانند راه حل برای تغییر یک تاپل، می توانید آن را به یک لیست تبدیل کنید، آیتم(های) خود را اضافه کنید و دوباره آن را به تاپل تبدیل کنید.
مثال
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.append("orange")
thistuple = tuple(y)
2. تاپل را به تاپل اضافه کنید: شما مجاز هستید تاپل ها را به تاپل های دیگر اضافه کنید، بنابراین اگر می خواهید یک مورد، (یا چند مورد) اضافه کنید، یک تاپل جدید با آیتم(های) موردنظر ایجاد کنید و آن را به تاپل موجود اضافه کنید:
مثال
یک تاپل جدید با مقدار "orange" ایجاد کنید و آن تاپل را اضافه کنید:
thistuple = ("apple", "banana", "cherry")
y = ("orange",)
thistuple += y
print(thistuple)
توجه: هنگام ایجاد یک تاپل فقط با یک آیتم، به یاد داشته باشید که بعد از آیتم یک کاما قرار دهید، در غیر این صورت به عنوان یک تاپل شناسایی نمی شود.
حذف آیتم از تاپل
توجه: شما نمی توانید آیتم ها را در یک تاپل حذف کنید.
تاپل ها غیرقابل تغییر هستند ، بنابراین نمی توانید موارد را از آن حذف کنید، اما می توانید از همان راه حلی استفاده کنید که ما برای تغییر و افزودن موارد تاپل استفاده کردیم:
مثال
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.remove("apple")
thistuple = tuple(y)
یا می توانید تاپل را به طور کامل حذف کنید:
مثال
کلیدواژه del
می تواند تاپل را به طور کامل حذف کند:
thistuple = ("apple", "banana", "cherry")
del thistuple
print(thistuple) #this will raise an error because the tuple no longer exists
استخراج اعضا از تاپل
وقتی یک تاپل ایجاد می کنیم، معمولاً مقادیری را به آن اختصاص می دهیم. به این کار "packing" گفته می شود:
مثال
fruits = ("apple", "banana", "cherry")
همچنین در پایتون، ما می توانیم مقادیر را دوباره به متغیرها استخراج کنیم. به این "unpacking" می گویند:
مثال
fruits = ("apple", "banana", "cherry")
(green, yellow, red) = fruits
print(green)
print(yellow)
print(red)
توجه: تعداد متغیرها باید با تعداد مقادیر موجود در تاپل مطابقت داشته باشد، در غیر این صورت باید از یک ستاره برای جمع آوری مقادیر باقی مانده به عنوان لیست استفاده کنید.
با استفاده از ستاره*
اگر تعداد متغیرها کمتر از تعداد مقادیر باشد، می توانید یک *
به نام متغیر اضافه کنید و مقادیر به عنوان یک لیست به این متغیر اختصاص داده می شود:
مثال
بقیه مقادیر را در لیستی به نام "red" قرار دهید:
fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")
(green, yellow, *red) = fruits
print(green)
print(yellow)
print(red)
اگر ستاره به متغیری غیر از آخرین متغیر اضافه شود، پایتون تا زمانی که تعداد مقادیر باقی مانده با تعداد متغیرهای باقی مانده مطابقت داشته باشد، مقادیر را به آن اختصاص می دهد.
مثال
fruits = ("apple", "mango", "papaya", "pineapple", "cherry")
(green, *tropic, red) = fruits
print(green)
print(tropic)
print(red)
حلقه روی تاپل
با استفاده از for
میتوانید روی آیتمهای تاپل حلقه بزنید.
مثال
thistuple = ("apple", "banana", "cherry")
for x in thistuple:
print(x)
در پست های بعدی با حلقه for بیشتر آشنا خواهید شد.
حلقه روی اندیس ها
همچنین میتوانید با مراجعه به شماره اندیس ها، روی آنها حلقه بزنید.
از توابع range()
و len()
برای ایجاد یک تکرار شونده مناسب استفاده کنید.
مثال
همه موارد را با مراجعه به شماره فهرست آنها چاپ کنید:
thistuple = ("apple", "banana", "cherry")
for i in range(len(thistuple)):
print(thistuple[i])
استفاده از حلقه while
با استفاده از while
نیز میتوانید روی آیتمهای تاپل حلقه بزنید.
از تابع len()
برای تعیین طول تاپل استفاده کنید ، سپس از 0 شروع کرده و با مراجعه به اندیس ها، مسیر خود را تا آخرین آیتم طی کنید.
به یاد داشته باشید که پس از هر بار تکرار، اندیس را یک عدد افزایش دهید تا حلقه بینهایت ایجاد نکنید.
مثال
thistuple = ("apple", "banana", "cherry")
i = 0
while i < len(thistuple):
print(thistuple[i])
i = i + 1
در پست های بعدی با حلقه while بیشتر آشنا خواهید شد.
ترکیب (Join) تاپل ها
برای ترکیب دو یا چند تاپل می توانید از عملگر +
استفاده کنید:
مثال
tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)
tuple3 = tuple1 + tuple2
print(tuple3)
ضرب تاپل ها
اگر می خواهید محتوای یک تاپل را چندین بار افزایش دهید (تکرار)، می توانید از عملگر *
روی کل تاپل استفاده کنید:
مثال
fruits = ("apple", "banana", "cherry")
mytuple = fruits * 2
print(mytuple)
متد های تاپل
پایتون دو متد داخلی دارد که می توانید موقع کار با تاپل از آنها استفاده کنید:
Method | Description |
count() | Returns the number of times a specified value occurs in a tuple |
index() | Searches the tuple for a specified value and returns the position of where it was found |