شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - تاپل‌ها

تاپل یک نوع دنباله و یک مجموعه توالی از داده های مرتب و غیرقابل تغییر است. اما اصلی‌ترین تفاوت بین تاپل‌ها و لیست‌ها این است که تاپل‌ها پس از ایجاد، قابل تغییر نیستند، در حالی که لیست‌ها قابل تغییر هستند و می‌توان به عناصر داخل لیست‌ها اضافه یا از آن‌ها حذف کرد.

برای نمایش تاپل‌ها از پرانتز استفاده می‌شود، مانند این:

(عنصر1, عنصر2, عنصر3)

در مقابل، لیست‌ها از براکت مربعی برای نمایش استفاده می‌کنند، مانند این:

[عنصر1, عنصر2, عنصر3]

اگرچه تاپل‌ها امکان تغییر مقادیر ندارند، اما به دلیل ثابت بودن و مرتب بودن، می‌توانند در مواردی که نیاز به تغییر ندارد مورد استفاده قرار بگیرد.

ایجاد یک تاپل به سادگی با قرار دادن مقادیر جداشده با کاما انجام می‌شود. به صورت اختیاری می‌توانید این مقادیر جداشده با کاما را درون پرانتز قرار دهید. به عنوان مثال :

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

تاپل خالی با دو پرانتز بدون مقدار نوشته می‌شود −

tup1 = ();

برای نوشتن یک تاپل حاوی یک مقدار، باید یک کاما (comma) را درج کنید، حتی اگر تنها یک مقدار وجود داشته باشد −

tup1 = (50,);

مانند شاخص‌های رشته‌ها، شاخص‌های تاپل‌ها از 0 شروع می‌شوند و می‌توان آن‌ها را برش داد، ادغام کرد و غیره.

دسترسی به مقادیر در تاپل‌ها

برای دسترسی به مقادیر در تاپل‌ها، از براکت مربعی با شاخص یا شاخص‌ها استفاده کنید تا مقدار موجود در آن شاخص را بدست آورید. به عنوان مثال −

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

هنگام اجرای کد فوق، نتیجه زیر تولید می‌شود −

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

به‌روزرسانی تاپل‌ه

تاپل‌ها غیرقابل تغییر هستند و این به این معنی است که شما نمی‌توانید مقادیر عناصر تاپل را به‌روزرسانی یا تغییر دهید. اما شما می‌توانید بخش‌هایی از تاپل‌های موجود را برای ایجاد تاپل‌های جدید استفاده کنید، همانند مثال زیر −

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

وقتی کد بالا اجرا می‌شود، نتیجه زیر را تولید می‌کند −

(12, 34.56, 'abc', 'xyz')

حذف عناصر تاپل

حذف عناصر تاپل به صورت جداگانه امکان‌پذیر نیست

برای حذف کامل یک تاپل، فقط از دستور del استفاده کنید. به عنوان مثال −

دموی زنده

tup = ('physics', 'chemistry', 1997, 2000)
print(tup)
del tup
print("After deleting tup : ")
print tup

این کد نتیجه زیر را تولید می‌کند. توجه کنید که یک ارور نمایش داده می‌شود، این به این دلیل است که پس از del tup تاپل دیگر وجود ندارد −

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print tup;
NameError: name 'tup' is not defined

عملیات‌های پایه‌ای تاپل‌ها

تاپل‌ها به عملگرهای + و * به همان شکلی که رشته‌ها به آنها واکنش می‌دهند، پاسخ می‌دهند؛ با این تفاوت که نتیجه یک تاپل جدید است نه یک رشته.

در واقع، تاپل‌ها به همه عملیات‌های عمومی دنباله‌ها که در دروس قبل روی رشته‌ها استفاده کردیم، پاسخ می‌دهند −

عبارت پایتون نتایج توضیحات
len((1, 2, 3)) 3 طول (تعداد عناصر)
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) چسباندن (ترکیب)
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') تکرار
3 in (1, 2, 3) True عضویت
for x in (1, 2, 3): print x, 1 2 3 تکرار

اندیس‌گذاری، برش و ماتریس‌ها

چون تاپل‌ها دنباله‌ها هستند، اندیس‌گذاری و برش برای تاپل‌ها به همان شکلی که برای رشته‌ها استفاده می‌شود کار می‌کند

L = ('spam', 'Spam', 'SPAM!')

 

عبارت پایتون نتایج توضیحات
L[2] 'SPAM!' اندیس‌ها از صفر شروع می‌شوند
L[-2] 'Spam' منفی: از سمت راست شمارش می‌شود
L[1:] ['Spam', 'SPAM!'] برش، بخش‌ها را بازیابی می‌کند

بدون جداسازی

هر مجموعه‌ای از داده ها با جداکننده کاما، بدون نماد شناسایی نوشته شود ، به صورت پیشفرض به تاپل تبدیل می شود،لذا جهت تبدیل به لیست حتما از علامت براکت برای لیست‌ها استفاده شود تا به صورت پیش‌فرض به تاپل‌ها تبدیل نشوند

توابع تاپل تعبیه شده در پایتون

پایتون شامل توابع تاپل زیر است −

شماره تابع با توضیح
1 cmp(tuple1, tuple2)

عناصر دو تاپل را مقایسه می‌کند.

2 len(tuple)

طول کل تاپل را برمی‌گرداند.

3 max(tuple)

مقدار بیشینه را از تاپل بازمی‌گرداند.

4 min(tuple)

مقدار کمینه را از تاپل بازمی‌گرداند.

5 tuple(seq)

یک لیست را به تاپل تبدیل می‌کند.