سلام ، وقتتون بخیر ،با مطلبی دیگر در زمینه python در خدمت شما هستم، میخوام در مورد نوع داده ای tuple یا چندتایی در پایتون توضیح میدم.
Tuples درست شبیه لیست ها می‌باشند با این تفاوت که شما نمی‌توانید مقادیر آن‌ها را ویرایش کنید. مقادیر اولیه که برای تاپل ها تعیین می‌کنید ، تا آخر برنامه ثابت باقی می‌مانند و قابل تغییر نیستند.

tuple ها در پایتون چیزی شبیه به نوع داده ای list می باشند. تاپل ها تعدادی از مقادیر هستند که با ویرگول از یکدیگر تفکیک می شوند. tuple ها داخل () تعریف می شوند.

تفاوت بنیادین میان list ها و tuple ها این است که لیست ها داخل آکولاد [] مشخص می شوند و المان ها و نیز اندازه آن ها تغییر پذیر است در حالی که tuple ها درون پرانتز تعریف می شوند و قابلیت بروز رسانی را ندارند. tuple را می توان لیست های فقط خواندنی نیز نام گذاشت.

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

tup1 = (‘physics’, ‘chemistry’, 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = “a”, “b”, “c”, “d”;

مثالی از یک tuple تهی را در زیر مشاهده می کنید:

tup1 = ();

در صورت وجود حتی یک مقدار در tuple مورد نظر، بایستی از ویرگول استفاده شود:

tup1 = (50,);

اندیس در نوع داده ای tuple نیز از صفر آغاز می شود. عملیاتی همچون برش و استخراج مقدار، اتصال و غیره … را می توان بر روی tupleاجرا نمود:

دسترسی به مقادیر یک tuple

جهت دسترسی به مقادیر موجود در یک tuple، می بایست از [] و اندیس مقدار مورد نظر استفاده کرد.

#!/usr/bin/python

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]

بروز رسانی tuple

همان طور که در بالا تشریح شد، tuple غیر قابل تغییر هستند؛ بدین معنا که امکان ویرایش و بروز رسانی آن ها وجود ندارد. با این حال می توان دو tuple را به هم متصل کرده و tuple جدید خلق کرد، همانند مثال زیر:

#!/usr/bin/python

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

نتیجه:

(۱۲, ۳۴٫۵۶, ‘abc’, ‘xyz’)

حذف المان های یک tuple

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

به منظور حذف کلی یک tuple کافی است دستور del را بکار ببرید:

#!/usr/bin/python

tup = (‘physics’, ‘chemistry’, 1997, 2000);

print tup

del tup;

print “After deleting tup : “

print tup

نتیجه ی زیر حاصل می گردد. همان طور که مشاهده می کنید، یک استثنا رخ داده است، زیرا با اجرا شدن دستور del، دیگر tuple وجود ندارد:

(‘physics’, ‘chemistry’, 1997, 2000)

After deleting tup :

Traceback (most recent call last):

File “test.py”, line 9, in

print tup;

NameError: name ‘tup’ is not defined

عملیات رایج که بر روی tuple قابل اجرا می باشد

از آنجایی که tuple ها از نوع ساختمان داده ای sequence (زنجیره ای از بایت ها) هستند، می توان عملیاتی نظیر برش و اندیس گذاری را بر روی آن ها پیاده کرد. با درنظر داشتن ورودی زیر:

L = (‘spam’, ‘Spam’, ‘SPAM!’)

عبارت

خروجی

شرح

L[2]

‘SPAM!’

اندیس از صفر آغاز می شود.

L[-2]

‘Spam’

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

L[1:]

[‘Spam’, ‘SPAM!’]

از یک اندیس به بعد المان ها را برمی گرداند.

نکته ی قابل توجه: هر مجموعه ای که از اشیای تشکیل و سپس توسط تفکیک گری مانند ویرگول از هم جدا شده باشد، اما داخل delimiter هایی همچون پرانتز برای tuple و []برای list محصور نشده باشد، در آن صورت پایتون با این مجموعه به مثابه ی tuple برخورد می کند.

#!/usr/bin/python

print ‘abc’, -4.24e93, 18+6.6j, ‘xyz’

x, y = 1, 2;

print “Value of x , y : “, x,y

نتیجه:

abc -4.24e+93 (18+6.6j) xyz

Value of x , y : 1 2

توابع توکار tuple

شماره ی تابع

تابع و شرح کارکرد آن

۱

cmp(tuple1, tuple2)

المان های دو tuple را با هم مقایسه می کند.

۲

len(tuple)

طول (تعداد کل المان های موجود در) tuple را برمی گرداند.

۳

max(tuple)

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

۴

min(tuple)

آیتمی که دارای کم ترین مقدار می باشد را برمی گرداند.

۵

tuple(seq)

یک لیست را به عنوان پارامتر پذیرفته و آن را به تاپل تبدیل می کند.