0% found this document useful (0 votes)
19 views18 pages

Tuple Python

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views18 pages

Tuple Python

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

‫به نام او‪ ،‬به یاد او‪ ،‬برای او‬

‫مبانی کامپیوتر و برنامه نویسی‬

‫چندتائیها در پایتون‬
‫‪T u p l e s‬‬

‫‪Dr. Ali Valinejad‬‬


‫‪[email protected]‬‬
‫مراجع‬

1- Matthes, Eric. Python crash course: a hands-on, project-based introduction to programming, 2016.
2- Sweigart, A. Automate the boring stuff with Python: practical programming for total beginners, 2015.
3- Lutz, Mark. Learning Python: Powerful Object-Oriented Programming. O'Reilly Media, Inc., 2013.
4- https://python.coderz.ir
5- https:// www.tutorialspoint.com/python3/python_tuples.htm
6- https://www.geeksforgeeks.org/tuples-in-python.htm
‫تعریف چندتائی‬

‫‪ ‬تعریف چندتائی‪:‬‬
‫یک چندتائی(‪ )tuple‬دنباله‌ای مرتب و تغییرناپذیر از اشیاء در پایتون است‪ .‬اعضای یک شئ چندتایی داخل‬
‫پرانتز قرار می‌گیرند و با کاما از هم جدا می‌شوند‪:‬‬
‫(عضو‌‪n‬ام‪‌،...‌،‬عضو‌دوم‪‌،‬عضو‌اول)‬

‫چند نکته‪:‬‬
‫‪ .1‬چندتائی‌ها همانند لیست‌ها هستند با این تفاوت که برخالف لیست‌ها نمی‌توان چندتائی‌ها را تغییر داد‪.‬‬
‫‪ .2‬چندتائی به دلیل تغییر ناپذیر بودن‪ ،‬نسبت به نوع لیست در مصرف حافظه بهینه‌تر می‌باشد‪.‬‬
‫‪ .3‬برای ایجاد شی چندتائی می‌توان از گذاردن پرانتز صرف نظر کرد و تنها اشیای را با کاما از یکدیگر جدا نمود‪.‬‬
‫ساخت چندتائی‬

‫‪ ‬چندتایئ خالی‪:‬‬
‫برای ساخت یک شیء چندتائی بدون عضو‪ ،‬از تابع ‪ tuple‬استفاده می‌شود‪:‬‬
‫()‪ = tuple‬نام‌چندتائی‬

‫مثال‪:‬‬
‫)(‪my_tuple = tuple‬‬

‫‪ ‬چندتایئ با تنها یک عضو‪:‬‬


‫در انتهای شئ چندتایئ تک عضوی باید یک کاما قرار داد‪.‬‬
‫(‪,‬مقدار) = نام‌چندتائی تک عضوی‬
‫‪,‬مقدار = نام‌چندتائی تک عضوی‬

‫مثال‪:‬‬
‫‪my_tuple1‬‬ ‫)‪= (1399,‬‬
‫‪my_tuple1‬‬ ‫‪= 1399,‬‬
‫‪my_tuple1‬‬ ‫)‪= (‘UMZ’,‬‬
‫‪my_tuple1‬‬ ‫‪= ‘UMZ’,‬‬
‫نکته‪:‬‬
‫چندتائی‌ها همانند لیست‌ها هستند با این تفاوت که برخالف لیست‌ها نمی‌توان چندتائی‌ها را تغییر داد‪.‬‬ ‫‪.1‬‬
‫چندتائی به دلیل تغییر ناپذیر بودن‪ ،‬نسبت به نوع لیست در مصرف حافظه بهینه‌تر می‌باشد‪.‬‬ ‫‪.2‬‬
‫برای ایجاد شی چندتائی می‌توان از گذاردن پرانتز صرف نظر کرد و تنها اشیای را با کاما از یکدیگر جدا نمود‪.‬‬ ‫‪.3‬‬
‫نام چندتایی ارجاعی به شئ چندتائی است‪.‬‬ ‫‪.4‬‬
‫ساخت چندتائی‬

‫‪ ‬چندتایئ با بیش از یک عضو‪:‬‬


‫برای ساخت یک شیء چندتائی با بیش از یک عضو‪ ،‬باید دنباله اعضا را با کاما از هم جدا نمود و داخل پرانتز یا‬
‫بدون پرانتز نوشت‪.‬‬
‫(عضو‌‪n‬ام‪‌،...‌،‬عضو‌دوم‪‌،‬عضو‌اول)=نام‌چندتائی‬
‫عضو‌‪n‬ام‪‌،...‌،‬عضو‌دوم‪‌،‬عضو‌اول=نام‌چندتائی‬

‫مثال‪:‬‬
‫)‪my_tuple1 = (1, 3, 99, ‘U’, ‘M’, ‘Z’, 34.6‬‬
‫‪my_tuple1 = 1, 3, 99, ‘U’, “M”, ‘Z’, 34.6‬‬

‫)‪print(my_tuple1‬‬ ‫خروجی ‪‬‬


‫)‪(1, 3, 99, ‘U’, ‘M’, ‘Z’, 34.6‬‬

‫نکته‪:‬‬
‫‪ .1‬اعضای دنباله متناظر با یک چندتائی با بیش از یک عضو می‌توانند از انواع داده‌ای متفاوت باشند‪.‬‬
‫‪ .2‬برای ایجاد شی چندتائی می‌توان از گذاردن پرانتز صرف نظر کرد و تنها اشیای را با کاما از یکدیگر جدا نمود‪.‬‬
‫ساخت چندتائی‬

‫‪ ‬تبدیل رشته به چندتائی‪:‬‬


‫برای تبدیل یک شیء رشته به شیء چندتائی می‌توان از تابع ‪ tuple‬استفاده نمود‪:‬‬
‫(نام‌شئ رشته)‪‌=tuple‬شئ چندتائی‬

‫مثال‪:‬‬
‫”‪Str1 = ”UMZ CFP 991‬‬
‫)‪Tuple1 = tuple(Str1‬‬
‫)‪print(Tuple1‬‬

‫‪:‬خروجی ‪‬‬
‫)’‪(‘U’, ‘M’, ‘Z’, ‘ ‘, ‘C’, ‘F’, ‘P’, ‘ ‘, ‘9’, ‘9’, ‘1‬‬

‫‪ ‬تبدیل لیست به چندتائی‪:‬‬


‫برای تبدیل یک شیء لیست به شیء چندتائی می‌توان از تابع ‪ tuple‬استفاده نمود‪:‬‬
‫(نام‌شئ لیست)‪‌=tuple‬شئ چندتائی‬

‫مثال‪:‬‬
‫]‪Lst1 = [1, 3, 99, ‘U’, ‘M’, ‘Z’, 34.6‬‬
‫)‪Tuple1 = tuple(Lst1‬‬
‫)‪print(Tuple1‬‬

‫‪:‬خروجی ‪‬‬
‫)‪(1, 3, 99, ‘U’, ‘M’, ‘Z’, 34.6‬‬
‫ساخت چندتائی‬

‫‪ ‬اتصال دو چندتایی برای ساخت یک چندتائی جدید‪:‬‬


‫با استفاده از عملگر ‪ +‬می‌توان دو چندتایی را به هم اتصال داد‪:‬‬
‫چندتائی دوم‌‪‌+‬چندتائی اول=‌شئ چندتائی‬

‫مثال‪:‬‬
‫)”‪tuple1 = (”UMZ”, “ “, ”CFP‬‬
‫‪tuple2 = 991,‬‬
‫‪tuple3 = tuple1+ tuple2‬‬
‫)‪print(tuple3‬‬

‫‪:‬خروجی ‪‬‬
‫)‪(‘UMZ’, ‘ ‘, ‘CFP’, 991‬‬
‫ساخت چندتائی‬

‫‪ ‬ساخت یک چندتائی با تکرار یک چندتائی دیگر‪:‬‬


‫با استفاده از عملگر * می‌توان یک چندتایی جدید براساس تکرار یک چندتائی موجود ساخت‪:‬‬
‫تکرار*‌چندتائی اول=‌شئ چندتائی‬

‫مثال‪:‬‬
‫)‪tuple1 = (”UMZ CFP”,‬‬
‫‪tuple2 = tuple1*3‬‬
‫)‪print(tuple2‬‬

‫‪:‬خروجی ‪‬‬
‫)’‪(‘UMZ CFP’, ‘UMZ CFP’, ‘UMZ CFP‬‬
‫ساخت چندتائی‬

‫‪ ‬ساخت یک چندتائی با چندتائیهای تودرتو‪:‬‬


‫با استفاده از چندتایی‌های تودرتو می‌توان یک چندتائی جدید ساخت‪:‬‬

‫مثال‪:‬‬
‫)‪Tuple1 = (0, 1, 2, 3‬‬
‫)'‪Tuple2 = ('python', 'CS‬‬
‫)‪Tuple3 = (Tuple1, Tuple2‬‬
‫)" ‪print("\nTuple with nested tuples:‬‬
‫)‪print(Tuple3‬‬

‫‪:‬خروجی ‪‬‬
‫) )'‪)(0, 1, 2, 3) , ('python', 'CS‬‬
‫ساخت چندتائی‬

:‫ ساخت یک چندتائی با استفاده از حلقهها‬

:‫مثال‬
Tuple1 = ('CFP991’,)
n=3
print("\nTuple with a loop")
for i in range(int(n)):
Tuple1 = (Tuple1,)
print(Tuple1)

 ‫خروجی‬:
()'CFP991',),)
())'CFP991',),),)
()))'CFP991',),),),)
‫دسترسی به اعضای یک چندتائی‬

‫دسترسی به اعضای یک رشته با اندیس نامنفی‬


‫‪ ‬برای دسترسی به یک عضو از چندتایئ می‌توان از اندیس آن عضو استفاده نمود‪ .‬اندیس اعضای یک چندتایئ از‬
‫سمت چپ با عدد صفر شروع و به سمت راست یک واحد یک واحد افزایش می‌یابد‪ .‬برای مثال اندیس اعضای‬
‫مختلف چندتایی )’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬
‫به صورت زیر تعیین می‌گردد‪:‬‬
‫‪۰‬‬ ‫‪۱‬‬ ‫‪۲‬‬ ‫‪۳‬‬ ‫‪۴‬‬ ‫‪۵‬‬ ‫‪۶‬‬ ‫‪۷‬‬ ‫‪۸‬‬ ‫‪۹‬‬ ‫‪۱۰‬‬ ‫‪۱۱‬‬ ‫‪۱۲‬‬ ‫‪۱۳‬‬
‫’‪’P‬‬ ‫’‪‘y‬‬ ‫’‪‘t‬‬ ‫’‪‘h‬‬ ‫’‪‘o‬‬ ‫’‪‘n‬‬ ‫‘‘‬ ‫’‪‘s‬‬ ‫’‪‘t‬‬ ‫’‪‘r‬‬ ‫’‪‘i‬‬ ‫’‪‘n‬‬ ‫’‪‘g‬‬ ‫’‪‘s‬‬

‫‪ ‬دسترسی به ‪i+1‬امین عضو یک چندتایئ‪:‬‬


‫]‪[i‬نام‌چندتایئ‬
‫)’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬
‫‪i‬‬ ‫]‪[i‬نام چندتایئ‬ ‫عضو‬
‫‪0‬‬ ‫]‪my_tuple[0‬‬ ‫’‪’P‬‬
‫‪1‬‬ ‫]‪my_tuple[1‬‬ ‫’‪‘y‬‬
‫‪5‬‬ ‫]‪my_tuple[5‬‬ ‫’‪‘n‬‬
‫‪8‬‬ ‫]‪my_tuple[8‬‬ ‫’‪‘t‬‬
‫دسترسی به اعضای یک چندتائی‬

‫دسترسی به اعضای یک رشته با اندیس منفی‬


‫‪ ‬برای دسترسی به یک عضو از چندتایئ می‌توان از اندیس منفی آن عضو استفاده نمود‪ .‬اندیس منفی اعضای یک‬
‫چندتایئ از سمت راست با عدد ‪ -1‬شروع و به سمت چپ یک واحد یک واحد کاهش می‌یابد‪ .‬برای مثال اندیس‬
‫منفی اعضای مختلف چندتایی )’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬
‫به صورت زیر تعیین می‌گردد‪:‬‬
‫‪-14‬‬ ‫‪-13‬‬ ‫‪-12‬‬ ‫‪-11‬‬ ‫‪-10‬‬ ‫‪-9‬‬ ‫‪-8‬‬ ‫‪-7‬‬ ‫‪-6‬‬ ‫‪-5‬‬ ‫‪-4‬‬ ‫‪-3‬‬ ‫‪-2‬‬ ‫‪-1‬‬
‫’‪’P‬‬ ‫’‪‘y‬‬ ‫’‪‘t‬‬ ‫’‪‘h‬‬ ‫’‪‘o‬‬ ‫’‪‘n‬‬ ‫‘‘‬ ‫’‪‘s‬‬ ‫’‪‘t‬‬ ‫’‪‘r‬‬ ‫’‪‘i‬‬ ‫’‪‘n‬‬ ‫’‪‘g‬‬ ‫’‪‘s‬‬

‫)’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬

‫‪i‬‬ ‫]‪[i‬نام چندتایئ‬ ‫عضو‬


‫‪-1‬‬ ‫]‪my_tuple[-1‬‬ ‫’‪’s‬‬
‫‪-5‬‬ ‫]‪my_tuple[-5‬‬ ‫’‪‘r‬‬
‫‪-10‬‬ ‫]‪my_tuple[-10‬‬ ‫’‪‘o‬‬
‫‪-14‬‬ ‫]‪my_tuple[-14‬‬ ‫’‪‘P‬‬

‫نکته‪:‬‬
‫‪ ‬با استفاده از تابع ()‪ len‬می‌توان تعداد اعضای یک دنباله را به دست آورد‪.‬‬
‫دسترسی به اعضای یک چندتائی‬
‫)’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬
‫‪۰‬‬ ‫‪1‬‬ ‫‪۲‬‬ ‫‪۳‬‬ ‫‪۴‬‬ ‫‪۵‬‬ ‫‪۶‬‬ ‫‪۷‬‬ ‫‪۸‬‬ ‫‪۹‬‬ ‫‪1۰‬‬ ‫‪11‬‬ ‫‪1۲‬‬ ‫‪1۳‬‬
‫’‪’P‬‬ ‫’‪‘y‬‬ ‫’‪‘t‬‬ ‫’‪‘h‬‬ ‫’‪‘o‬‬ ‫’‪‘n‬‬ ‫‘‘‬ ‫’‪‘s‬‬ ‫’‪‘t‬‬ ‫’‪‘r‬‬ ‫’‪‘i‬‬ ‫’‪‘n‬‬ ‫’‪‘g‬‬ ‫’‪‘s‬‬
‫‪-14‬‬ ‫‪-13‬‬ ‫‪-12‬‬ ‫‪-11‬‬ ‫‪-10‬‬ ‫‪-9‬‬ ‫‪-8‬‬ ‫‪-7‬‬ ‫‪-6‬‬ ‫‪-5‬‬ ‫‪-4‬‬ ‫‪-3‬‬ ‫‪-2‬‬ ‫‪-1‬‬

‫‪ ‬چند الگو برای دسترسی به اعضای چندتایئ ‪:my_tuple‬‬


‫مثال‬ ‫توضیحات‬ ‫الگو‬
‫]‪my_tuple[10‬‬
‫دسترسی به‌عضوی با‌اندیس ‪i‬‬ ‫]‪my_tuple[i‬‬
‫‪i‬‬
‫]‪my_tuple[-4‬‬ ‫اعضا دنباله را از سمت راست پیمایش می کند؛ اندیس سمت راست ترین عضو ‪ -1‬است و به ترتیب به‬
‫سمت چپ یک واحد یک واحد کاهش می‌یابد‪.‬‬ ‫]‪my_tuple[-i‬‬
‫‪i‬‬
‫]‪my_tuple[4:10‬‬
‫اعضایی از دنباله که در بازه‌ای از اندیس ‪ i‬تا قبل از اندیس ‪ j‬هستند را دستیابی می‌کند‪.‬‬ ‫]‪my_tuple[i:j‬‬
‫)’‪(‘o’,’n’,’ ‘,’s’,’t’,’r‬‬
‫]‪my_tuple[:10‬‬
‫’‪(‘P’,’y’,’t’,’h’,’o’,’n’,‬‬ ‫اعضایی از دنباله که در بازه‌ای از اندیس صفر تا قبل از اندیس ‪ j‬هستند را دستیابی می‌کند‬ ‫]‪my_tuple[:j‬‬
‫)’‪‘,’s’,’t’,’r‬‬
‫]‪my_tuple[4:‬‬
‫’‪(‘o’,’n’,‬‬ ‫اعضایی از دنباله که در بازه‌ای از اندیس ‪ i‬تا اندیس آخر هستند را دستیابی می‌کند‪.‬‬ ‫]‪my_tuple[i:‬‬
‫)’‪‘,’s’,’t’,’r’,’I’,’n’,’g’,’s‬‬
‫]‪my_tuple[4:10:2‬‬
‫]‪ my_tuple[i:j:k‬اعضایی از دنباله که در بازه‌ای از اندیس ‪ i‬تا قبل از اندیس ‪ j‬هستند را با اندازه گام ‪ k‬مشخص می‌کند‪.‬‬
‫)’‪(‘o’,’ ‘,’t‬‬
‫]‪my_tuple[::2‬‬
‫اعضایی از دنباله که در بازه‌ای از اندیس ‪ 0‬تا قبل از اندیس آخر هستند را با اندازه گام ‪ k‬مشخص می‌کند‪.‬‬ ‫]‪my_tuple[::k‬‬
‫)’‪(‘P’,’t’,’o’,’ ‘,’t’,’I’,’g‬‬
‫]‪my_tuple[::-2‬‬
‫]‪ my_tuple[::-k‬اعضا دنباله را از سمت راست به چپ با طول گام ‪ k‬پیمایش می کند‪.‬‬
‫)’‪(‘s’,’n’,’r’,’s’,’n’,’h’,’y‬‬
‫نمایش اعضای یک چندتائی‬

‫‪for x in (1,2,3):‬‬
‫)' ’ = ‪print(x, end‬‬

‫‪:‬خروجی ‪‬‬
‫‪123‬‬
‫حذف یک شئ چندتائی‬

‫‪ ‬با توجه به غیرقابل تغییر بودن چندتائی سبب می‌شود که نتوان اعضای یک شئ چندتایی را به تنهایی یا به‬
‫تعدادی خاص حذف نمود‪ .‬اما یک شئ چندتایی را می‌توان با استفاده از دستور ‪ del‬به طور صریح کامال حذف‬

‫)’‪my_tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g‬‬

‫‪del my_tuple‬‬
‫عملگرها و چندتائیها‬
Tuple1 = )'p', 'y', [1, 2, 3], 5)
print(‘p’ in Tuple1) True

Tuple1 = )'p', 'y', [1, 2, 3], 5)


print(Tuple1[2][1]) 2

Tuple1 = )'p', 'y', [1, 2, 3], 5)


print(‘a’ not in Tuple1) True

Tuple1 = )'p', 'y', [1, 2, 3], 5)


print([1, 2, 3] not in Tuple1) False

if )'p', 'y’)==(‘p’,’t’):
print(True)
else:
False
print(False)

:‫نکته مهم‬
‫ ویژگی‌های خود را داشته و‬،‫ اشیاء تغییرپذیر درون شی چندتائی‬،‫ به دلیل ساختار ارجاعی بین اشیاء در پایتون‬
:‫همچنان تغییر‌پذیر خواهند بود‬
Tuple1 = )'p', 'y', [1, 2, 3], 5)
print(Tuple1[2])
Tuple1[2][2]=9 [1, 2, 3]
print(Tuple1) )'p', 'y', [1, 2, 9], 5)
‫عملگرها و چندتائیها‬
‫)‪Tuple1 = )'p', 'y', [1, 2, 3], 5‬‬
‫‪Tuple2 = Tuple1‬‬
‫‪Tuple1[2][2]=0‬‬
‫)‪print(‘Tuple1: ’, Tuple1‬‬ ‫)‪Tuple1: )'p', 'y', [1, 2, 0], 5‬‬
‫)‪print(‘Tuple2: ’, Tuple2‬‬ ‫)‪Tuple2: )'p', 'y', [1, 2, 0], 5‬‬

‫نکته مهم‪:‬‬
‫‪ ‬اشیاء تغییرپذیر نظیر لیست و چندتائی را نمی‌توان با استفاده از عملگر انتساب کپی نمود‪ .‬زیرا تغییر در یک شئ‬
‫سبب همان تغییر در شئ دیگر می‌شود‪.‬‬
‫‪ ‬برای انتساب متغیرهای تغییر پذیر نظیر لیست و چندتائی می‌توان از تابع ‪ deepcopy‬از ماژول ‪copy‬‬
‫استفاده نمود‪.‬‬

‫‪import copy‬‬
‫)‪Tuple1 = )'p', 'y', [1, 2, 3], 5‬‬
‫)‪Tuple2 =copy.deepcopy(Tuple1‬‬
‫‪Tuple1[2][2]=0‬‬
‫)‪print(‘Tuple1: ’, Tuple1‬‬ ‫)‪Tuple1: )'p', 'y', [1, 2, 0], 5‬‬
‫)‪print(‘Tuple2: ’, Tuple2‬‬ ‫)‪Tuple2: )'p', 'y', [1, 2, 3], 5‬‬
‫توابع پیشساخته برای دستکاری چندتائیها‬

my_tuple = (‘U’, ‘M’, ‘Z’, 991) 0 U


T = enumerate(my_tuple) 1 M
for i,v in T: 2 Z
print)i,v) 3 991

You might also like