آموزش نوع داده ای تاپل (چندتایی یا مجموعه) در پایتون (tuple Python)

آموزش نوع داده ای تاپل (چندتایی یا مجموعه) در پایتون (tuple Python)

از نوع داده ای tuple برای ذخیره کردن چند مقدار در یک متغیر استفاده می شود.

تاپل ها یکی از 4 نوع داده داخلی هستند که برای ذخیره مجموعه داده ها استفاده می شوند، 3 نوع دیگر عبارتند از لیست ها، sets و فرهنگ لغت یا همان dictionary هستند که در جاهای مختلف کاربردهای خاص خود را دارند.

زمان مطالعه: 3 دقیقه
بازدید: 2951
پرسش و پاسخ: 0

تاپل مجموعه ای ترتیبی و غیر قابل تغییر است.

مقادیر tuple درون جفت پرانتز نوشته می شوند.

thistuple = ("apple", "banana", "cherry")
print(thistuple)

تاپل در پایتون (Python)

آیتم های tuple

آیتم های tuple مرتب، تغییرناپذیر و مقادیر تکراری را مجاز می دانند.

آیتم های tuple دارای ایندکس (Index) هستند و مقدار ایندکس از 0 شروع می شود یعنی اولین آیتم ایندکس آن [0] است دومین آیتم دارای ایندکس [1] است و الی آخر.

مرتب شده

وقتی میگوییم که آیتم های تاپل مرتب شده هستند به این معنی است که به همان ترتیبی که تعریف شده اند باقی می ماند و تغییر نمی کند.

تغییرناپذیر

تغییر پذیر در آیتم های tuple به این معنا است که شما بعد از تعریف آیتم های tuple نمیتوانید آیتم جدیدی اضافه کنید، آیتمی را حذف کنید یا یک آیتم را تغییر دهید.

تکرار پذیر بودن آیتم ها

از آن جایی که آیتم ها ایندکس می شوند مقادیر آن ها می توانند تکراری باشند.

thistuple = ("apple", "banana", "cherry", "apple", "cherry")
print(thistuple)

تکرارپذیر بودن مقادیر tuple یا تاپل در پایتون (Python)

طول tuple ها

برای اطلاع از تعداد آیتم های یک tuple از تابع len استفاده میکنیم. این تابع تعداد آیتم های یک tuple را برای ما در خروجی برمیگرداند.

thistuple = ("apple", "banana", "cherry")
print(len(thistuple))

طول tuple ها در پایتون (Python)

ایجاد tuple با یک آیتم

برای ایجاد tuple که فقط دارای یک آیتم است باید از کاما (,) در آخر آیتم استفاده کنید در غیر این صورت به عنوان tuple تشخیص داده نمی شود.

thistuple = ("apple",)
print(type(thistuple))
#NOT a tuple
thistuple = ("apple")
print(type(thistuple))

ایجاد tuple با یک آیتم در پایتون (Python)

انواع نوع داده در تاپل

آیتم های یک tuple می توانند از هر نوع داده ای باشند و محدودیتی از این لحاظ ندارند.

در مثال زیر ما برای تعریف آیتم های tuple از سه نوع رشته ای، عددی و بولی استفاده کردیم.

tuple1 = ("apple", "banana", "cherry")
tuple2 = (1, 5, 7, 9, 3)
tuple3 = (True, False, False)

انواع نوع داده تاپل در پایتون (Python)

یک tuple همچنین می تواند شامل ترکیبی از چند نوع داده باشد.

tuple1 = ("abc", 34, True, 40, "male")

انواع نوع داده تاپل در پایتون (Python)

تابع type

از دیدگاه پایتون، tuple ها به عنوان اشیا با نوع داده ای tuple تعریف می شوند.

<class 'tuple'>

در مثال زیر نوع داده ای متغیر تعریف شده، یک شی با نوع داده ای لیست است.

mytuple = ("apple", "banana", "cherry")
print(type(mytuple))

تابع تاپل در پایتون (Python)

تابع سازنده tuple

شما همچنین می توانید برای ایجاد tuple جدید از تابع سازنده tuple استفاده کنید. حتما از دو پرانتز استفاده کنید.

thistuple = tuple(("apple", "banana", "cherry")) # note the double round-brackets
print(thistuple)

تابع سازنده تاپل در پایتون (Python)

مجموعه های پایتون (آرایه ها)

در پایتون 4 نوع داده برای ذخیره مجموعه داده ها استفاده می شود.

  1. لیست ها که مرتب و تغییرپذیر و تعریف مقادیر تکراری در آن مجاز است.
  2. tuple که مرتب و غیر قابل تغییر و تعریف مقادیر تکراری در آن مجاز است.
  3. set که ترتیبی نیست و ایندکس نمی شود و مقادیر تکراری در آن مجاز نیست.
  4. فرهنگ لغت یا dictionary که مرتب است و قابل تغییر است اما مقادیر تکراری در آن مجاز نیست.

نکته : از نسخه 3.7  پایتون dictionary مرتب شده ارائه شد قبل تر از این نسخه ترتیبی نبود.

هنگام انتخاب نوع مجموعه دقت داشته باشید چون انتخاب نوع مجموعه مناسب باعث ایجاد کارایی و امنیت بیشتر می شود.

دسترسی به اعضای تاپل در پایتون (Python)

آیتم های یک tuple ایندکس می شوند و شما با شماره ایندکس آن ها می توانید به آن ها دسترسی پیدا کنید.

در مثال زیر به ایندکس شماره 1 یعنی آیتم شماره 2 دسترسی پیدا کرده و آن را در خروجی نمایش داده است.

thistuple = ("apple", "banana", "cherry")
print(thistuple[1])

دسترسی به اعضای تاپل در پایتون (Python)

نکته : ایندکس آیتم ها از 0 شروع می شوند.

ایندکس منفی

ایندکس منفی یعنی از انتهای tuple شروع کنید.

[-1] به آخرین آیتم اشاره دارد، [-2] به یکی قبل از آخر و همین طور به سمت اولین مقدار tuple شماره گذاری می شود.

در مثال زیر با مقدار ایندکس [-1] به آخرین مقدار tuple دسترسی پیدا کرده و آن را در خروجی چاپ کرده است.

thistuple = ("apple", "banana", "cherry")
print(thistuple[-1])

ایندکس منفی tuple در پایتون (Python)

محدوده ایندکس

شما می توانید با تعیین محل شروع و پایان ایندکس یک تاپل، محدوده ایندکس در آن tuple را مشخص کنید.

هنگامی که محدوده را مشخص می کنید، مقدار بازگشتی یک tuple جدید با مقادیر مشخص شده خواهد بود.

در مثال زیر آیتم های 3، 4 و 5 برگشت داده می شوند.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:5])

محدوده ایندکس تاپل در پایتون (Python)

نکته : در مثال بالا محدوده از ایندکس شماره 2 (خود دو شامل می شود) تا ایندکس شماره 5 (ایندکس شماره 5 شامل نمی شود) است.

یادآوری : ایندکس از 0 شروع می شود.

اگر مقدار شروع را مشخص نکنید محدوده از ابتدای tuple مشخص می شود.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[:4])

محدوده ایندکس تاپل در پایتون (Python)

اگر مقدار پایان را مشخص نکنید محدوده تا انتهای tuple در نظر گرفته می شود.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[2:])

محدوده ایندکس tuple در پایتون (Python)

محدوده ایندکس منفی

اگر می خواهید ک بررسی را از انتهای tuple انجام دهید از ایندکس های منفی استفاده کنید.

در مثال زیر محدوده برگشتی tuple جدید از “Orange” (-4) شروع شده و تا “Mango” (که خود آن را شامل نمی شود) مشخص شده است.

thistuple = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(thistuple[-4:-1])

محدوده ایندکس منفی تاپل در پایتون (Python)

بررسی موجود بودن

برای تعیین وجود یک مقدار مشخص درون یک tuple از کلمه کلیدی in استفاده می کنیم.

در مثال زیر بررسی می کند که آیا مقدار “apple” درون tuple وجود دارد یا خیر. اگر مقدار وجود داشته باشد رشته مورد نظر را در خروجی چاپ می کند.

thistuple = ("apple", "banana", "cherry")
if "apple" in thistuple:
  print("Yes, 'apple' is in the fruits tuple")

بررسی موجود بودن آیتم تاپل در پایتون (Python)

تغییرات تاپل در پایتون (Python)

Tuple ها غیرقابل تغییر هستند، به این معنا که بعد از تعریف شدن نمی توان آیتم های آن را تغییر، اضافه و یا حذف کرد.

اما راه حل هایی برای این کار وجود دارد که در ادامه آن ها را بررسی می کنیم.

تغییر مقدار tuple

هنگامی که یک tuple ایجاد شد نمی توانیم محتوای آن را تغییر دهیم. Tuple غیر قابل تغییر است یا به اصطلاح تغییرناپذیر است.

اما یک راه حل وجود دارد، شما می توانید tuple را به یک لیست تبدیل کنید و آن را تغییر دهید و دوباره لیست را به tuple تغییر دهید.

در مثال زیر tuple به لیست تبدیل می شود تا تغییرات در آن امکان پذیر شود.

x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)
print(x)

تغییر مقدار tuple در پایتون (Python)

درج آیتم

از آنجا که tuple ها تغییر ناپذیر هستند، مانند لیست ها متد داخلی append ندارند، اما روش دیگری برای افزودن آیتم به یک tuple وجود دارد.

  • تبدیل کردن tuple به لیست

دقیقا مانند تغییر در آیتم های تاپل شما می توانید tuple مورد نظر را به یک لیست تبدیل کنید و آیتم های مورد نظر خود را به آن اضافه کنید و بعد دوباره آن را به یک tuple تبدیل کنید.

thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.append("orange")
thistuple = tuple(y)

تبدیل کردن تاپل به لیست در پایتون (Python)

  • اضافه کردن یک tuple به یک tuple دیگر

شما می توانید که یک tuple را به یک tuple دیگر اضافه کنید، بنابراین اگر می خواهید آیتم هایی را به یک آن اضافه کنید، یک tuple جدید با آیتم های مورد نظر ایجاد کنید و آن را به tuple قبلی که قصد اضافه کردن آیتم به آن را داشتید، اضافه کنید.

thistuple = ("apple", "banana", "cherry")
y = ("orange",)
thistuple += y
print(thistuple)

اضافه کردن یک تاپل به یک tuple دیگر در پایتون (Python)

نکته: هنگام ایجاد کردن یک tuple که تنها یک آیتم دارد، حتما در انتهای آیتم آن از ویرگول استفاده کنید در غیر این صورت آن را به عنوان tuple نمی شناسد.

حذف آیتم

نکته: شما نمی توانید آیتم های یک tuple را حذف کنید.

همانطور که گفته شد tuple ها غیر قابل تغییر هستند، اما می توانید از همان راه حل هایی که برای تغییر و درج استفاده شد برای حذف کردن آیتم ها در tuple نیز استفاده کنید.

  • تبدیل به لیست

thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.remove("apple")
thistuple = tuple(y)

تبدیل کردن تاپل به لیست در پایتون (Python)

در مثال بالا tuple به یک لیست تبدیل می شود، آیتم مورد نظر حذف می شود و بعد دوباره به یک tuple تبدیل می شود.

شما همچنین می توانید با کلمه کلیدی del یک tuple را به طور کامل حذف کنید.

thistuple = ("apple", "banana", "cherry")
del thistuple
print(thistuple) #this will raise an error because the tuple no longer exists

کلمه کلیدی del در تاپل در پایتون (Python)

در این مثال بعد از حذف tuple به صورت کامل پیام خطا نمایش داده می شود زیرا دیگر tuple برای نمایش دادن وجود ندارد.

Unpacking کردن یک تاپل در پایتون (Python)

به طور معمول، وقتی یک tuple را ایجاد می کنیم و مقادیر را به آن اختصاص می دهیم، اصطلاحا به آن packing کردن گفته می شود.

در مثال زیر یک عمل packing انجام شده است.

fruits = ("apple", "banana", "cherry")

اما در پایتون ما می توانیم مقادیر اختصاص داده شده به tuple را تک تک به متغیرها اختصاص دهیم، به این کار اصطلاحا unpacking گفته می شود.

در مثال زیر یک عمل unpacking انجام داده شده است.

fruits = ("apple", "banana", "cherry")
(green, yellow, red) = fruits
print(green)
print(yellow)
print(red)

Unpacking کردن یک تاپل در پایتون (Python)

نکته: مقدار متغیرها با مغدار tuple باید مطابقت داشته باشد، در غیر این صورت باید از ستاره (*) استفاده کنیم تا باقیمانده مقادیر به عنوان لیست شناخته شوند.

استفاده از ستاره (*)

اگر تعداد متغیر ها از تعداد مقادیر کمتر باشند باید از یک متغیر استفاده کنیم تا بقیه مقادیر به عنوان لیست تلقی شوند.

در مثال زیر مقادیر به متغیرها اختصاص داده می شوند و مقادیر باقیمانده به یک لیست به نام “red”  در متغیر آخر که با ستاره (*) مشخص شده است، تبدیل می شوند.

fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")
(green, yellow, *red) = fruits
print(green)
print(yellow)
print(red)

استفاده از ستاره (*) در tuple در پایتون (Python)

اگر ستاره (*) به نام متغیری به جز آخرین متغیر اختصاص داده شود، پایتون مقادیر را تا زمانی که تعداد متغیرهای باقیمانده با تعداد مقادیر باقیمانده مطابقت داشته باشد به آن متغیر اختصاص می دهد.

fruits = ("apple", "mango", "papaya", "pineapple", "cherry")
(green, *tropic, red) = fruits
print(green)
print(tropic)
print(red)

استفاده از ستاره (*) در تاپل در پایتون (Python)

پیمایش تاپل با حلقه ها در پایتون (Python)

می توان با استفاده از حلقه ها تمام آیتم های tuple را پیمایش کرد.

حلقه for

در مثال زیر با استفاده از حلقه for همه آیتم های tuple در خروجی چاپ می شوند

thistuple = ("apple", "banana", "cherry")
for x in thistuple:
  print(x)

پیمایش تاپل با حلقه for در پایتون (Python)

در مقالات آینده با حلقه های for در پایتون بیشتر آشنا می شوید.

شما همچنین می توانید آیتم های tuple را با شماره ایندکس آن ها در حلقه for پیمایش کنید.

برای پیمایش بهتر می توانید از توابع range و len استفاده کنید.

در مثال زیر همه آیتم های tuple را با اشاره به ایندکس آن ها در خروجی چاپ می کند.

thistuple = ("apple", "banana", "cherry")
for i in range(len(thistuple)):
  print(thistuple[i])

پیمایش tuple  با حلقه for در پایتون (Python)

حلقه while

همچنین می توانیم با حلقه while تمام آیتم های tuple را پیمایش کنیم.

از تابع len برای تعیین طول tuple استفاده می کنیم، از مقدار 0 شروع می کنیم و سپس  با مراجعه به ایندکس آنها tuple خود را پیمایش می کنیم.

به یاد داشته باشید بعد از هر بار تکرار شماره ایندکس را یکی افزایش دهید.

در مثال زیر از حلقه while برای پیمایش tuple استفاده کرده ایم، متغیر i را تعریف کردیم و با 0 مقدار دهی کردیم که پیمایش از ایندکس اولین آیتم (ایندکس شماره 0) شروع شود و بعد از هر بار تکرار شماره ایندکس (متغیر i) یکی افزایش می یابد.

thistuple = ("apple", "banana", "cherry")
i = 0
while i < len(thistuple):
  print(thistuple[i])
  i = i + 1

پیمایش تاپل با حلقه while در پایتون (Python)

در مقالات آینده با حلقه های while در پایتون بیشتر آشنا می شوید.

ادغام تاپل ها در پایتون (Python)

برای ادغام 2 یا چند tuple می توانید از عملگر جمع (+) در پایتون استفاده کنید.

tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)
tuple3 = tuple1 + tuple2
print(tuple3)

ادغام تاپل ها در پایتون (Python)

ضرب tuple

اگر می خواهید آیتم های یک تاپل را به تعداد مشخص در خودش ضرب کنید از عملگر ضرب (*) استفاده کنید.

fruits = ("apple", "banana", "cherry")
mytuple = fruits * 2
print(mytuple)

ضرب tuple ها در پایتون (Python)

در مثال بالا آیتم های tuple مورد نظر دو بار در یک tuple جدید تکرار شده اند.

متدها یا توابع تاپل در پایتون (Python)

در پایتون دو متد داخلی برای استفاده از tuple ها وجود دارد که در جدول زیر به بررسی آن ها می پردازیم.

متدهای tuple در پایتون (Python)
متد توضیحات
Count تعداد دفعاتی که یک آیتم در یک tuple تکرار شده است را برمیگرداند
Index درون یک tuple به دنبال مقدار مشخصی می گردد و در صورت پیدا شدن موقعیت مکانی (شماره ایندکس)  آن را برمیگرداند

در زیر برای هر کدام از متد ها مثالی برای درک بهتر آورده شده است.

متد Count

در این مثال تعداد دفعاتی که مقدار 5 در tuple تکرار شده است برگشت داده می شود.

thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
x = thistuple.count(5)
print(x)

متد ()Count در تاپل در پایتون (Python)

متد Index

در مثال زیر چون دو بار مقدار 8 تکرار شده است، متد index اولین مقدار 8 درون tuple را جستجو می کند و ایندکس آن را برمیگرداند.

thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
x = thistuple.index(8)
print(x)

متد ()index در تاپل در پایتون (Python)

بهزاد میرزازاده
مسیر درست با پرسش های درست ساخته می شود

مشاهده تمام مطالب نویسنده