آموزش تاپل ها در پایتون به همراه توضیحات کامل
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
تاپل در پایتون
یک تاپل در پایتون شبیه به یک لیست است. تفاوت بین لیست و تاپل ها در پایتون در توانایی تغییر عناصر می باشد. عناصر یک تاپل پس از آن که اختصاص می یابند، غیر قابل تغییر هستند. این در حالی است که عناصر یک لیست قابلیت تغییر دارند.
ایجاد تاپل در پایتون
یک تاپل با قرار دادن تمامی عناصرش درون پرانتز () و جدا کردن این عناصر با کاما، ایجاد می شود. قرار دادن پرانتز ها اختیاری می باشد اما استفاده از آن ها بهتر است. یک تاپل می تواند هر تعداد آیتم از هر نوعی از داده مانند اعداد صحیح، لیست ، رشته و ... را شامل شود.
به مثال زیر توجه کنید، این مثال یک نمونه از تاپل با پرانتز می باشد:
# Empty tuple
my_tuple = ()
print(my_tuple)
# Tuple having integers
my_tuple = (1, 2, 3)
print(my_tuple)
# tuple with mixed datatypes
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# nested tuple
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)
خروجی این قطعه کد به صورت زیر می باشد:
()
(1, 2, 3)
(1, 'Hello', 3.4)
('mouse', [8, 4, 6], (1, 2, 3))
مثال بعدی یک نمونه از تاپل ها بدون پرانتز می باشد:
my_tuple = 3, 4.6, "dog"
print(my_tuple)
# tuple unpacking is also possible
a, b, c = my_tuple
print(a) # 3
print(b) # 4.6
print(c) # dog
خروجی این تاپل نیز به صورت زیر می باشد:
(3, 4.6, 'dog')
3
4.6
dog
دسترسی به عناصر تاپل
راه های مختلفی وجود دارد که می توانیم به عناصر یک تاپل دسترسی داشته باشیم.
• indexing
ما می توانیم از عملگر براکت [ ] برای دسترسی به یک آیتم در یک تاپل استفاده کنیم، و این از جایی است که شاخص از 0 شروع می شود. اندیس گذاری در تاپل ها مشابه با رشته ها می باشد، یعنی اولین متغیر شماره صفر را می گیرد، دومین متغیر شماره یک را می گیرد و به همین ترتیب تا انتها پیش می رویم. بر همین اساس، اگر تعداد متغیر ها n تا باشد، آخرین متغیرn-1 می شود. بنابراین، به طور مثال تاپلی که دارای 10 عنصر است، دارای اندیس هایی از 0 تا 9 خواهد بود. تلاش برای دسترسی به یک شاخص خارج از محدوه تعریف شده در تاپل، IndexError ایجاد می کند.
شاخص باید یک عدد صحیح باشد، بنابراین نمی توانیم ازانواع دیگر استفاده کنیم. این منجر به TypeError می شود. به همین ترتیب، تاپل های تو در تو با استفاده از نمایه سازی تو در تو، همانطور که در مثال زیر نشان داده شده است، قابل دسترسی هستند.
به مثال زیر توجه کنید:
# Accessing tuple elements using indexing
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# IndexError: list index out of range
# print(my_tuple[6])
# Index must be an integer
# TypeError: list indices must be integers, not float
# my_tuple[2.0]
# nested tuple
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
# nested index
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
خروجی این قطعه کد به صورت زیر می باشد:
p
t
s
4
• Negative indexing
پایتون ایندکس منفی را برای دنباله های خود امکان پذیر می کند. شاخص 1- به آخرین مورد و شاخص 2- به دومین مورد آخر و... اشاره می کند.
در ادامه یک مثال از این قسمت را خواهید دید:
# Negative indexing for accessing tuple elements
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
# Output: 't'
print(my_tuple[-1])
# Output: 'p'
print(my_tuple[-6])
خروجی این قطعه کد به صورت زیر می باشد:
t
p
• Slicing
با استفاده از عملگر (:)، می توانیم به طیف وسیعی از آیتم های درون یک تاپل دسترسی داشته باشیم.
قطعه کد زیر مثالی از این قسمت می باشد:
# Accessing tuple elements using slicing
my_tuple = ('p','r','o','g','r','a','m','i','z')
# elements 2nd to 4th
# Output: ('r', 'o', 'g')
print(my_tuple[1:4])
# elements beginning to 2nd
# Output: ('p', 'r')
print(my_tuple[:-7])
# elements 8th to end
# Output: ('i', 'z')
print(my_tuple[7:])
# elements beginning to end
# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple[:])
خروجی این قطعه کد به صورت زیر می باشد:
('r', 'o', 'g')
('p', 'r')
('i', 'z')
('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
حذف تاپل در پایتون
همانطور که در بالا توضیح دادیم، امکان ایجاد تغییر در تاپل ها وجود ندارد و ما نمی توانیم مواردی از تاپل حذف کنیم. با این حال، برای حذف کامل یک تاپل می توانیم از کلمه کلیدی del کمک بگیریم.
# Deleting tuples
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# can't delete items
# TypeError: 'tuple' object doesn't support item deletion
# del my_tuple[3]
# Can delete an entire tuple
del my_tuple
# NameError: name 'my_tuple' is not defined
print(my_tuple)
خروجی این کد به صورت زیر می باشد:
Traceback (most recent call last):
File "<string>", line 12, in <module>
NameError: name 'my_tuple' is not defined
در این درس از آموزش پایتون به مبحث تاپل در پایتون پرداختیم. نحوه ایجاد و استفاده از آن را آموزش دادیم. در ادامه نیز نحوه دسترسی و حدف تاپل ها را آموختید. برای تسلط به این مبحث توصیه می کنیم ویدیو آموزشی در همین صفحه را مشاهده کنید.امیدواریم این درس را دوست داشته باشید و از آن استفاده کنید در درس بعد به معرفی و کار با مجموعه ها خواهیم پرداخت.
نظرات دانشجویان
سلام وقتتون بخیر ببخشید یه سوالی برام پیش اومد الان جمع دوتا تاپل چه نتیجه ای میده؟
سلام دوست عزیز وقتتون بخیر، لطفا سوال خود را در انجمن برنامه نویسی درسمن مطرح نمایید به چند دلیل:
اول اینکه ممکن است سوال شما، سوال خیلی از افراد دیگر نیز باشد و اگر در انجمن آن را مطرح کنید، افرادی که به این مشکل خورده باشند به راحتی به جواب خود می رسند.
دوم اینکه با محیط انجمن برنامه نویسی درسمن نیز آشنا می شوید و میتوانید سوال های بیشتر بپرسید و یا جواب بدید که این در روند آموزش شما می تواند خیلی مفید باشد.
و اینکه ما در این بخش فقط به نظرات و پیشنهادات پاسخ خواهیم داد.
از همراهی صمیمانه شما متشکریم.
سلام وقت بخیر. استاد خیلی مختصر توضیح میدن. و مثال غیر کاربردی زیاد حل میکنن. مثلا بخش لیست ها میشد با ده دقیقه جامع گفت ولی متاسفانه حل مثال های غیر نیاز زیاده
سلام محمد طاها جان وقتتون بخیر.
در خصوص حل مثال های متعدد باید خدمتتون بگم که استاد سال های زیادی تدریس کرده اند و می دانند که چه تمرین هایی را مطرح کنند تا مبحث به صورت کامل برای دانشجو مشخص شود، گاهی نیاز است شما از یک مبحث سوال های زیادی را حل کنید تا به صورت کامل با آن آشنا شوید.
باز هم از شما ممنون هستیم که نظرتان را درج کردید، این را بدانید درسمن همیشه با شما همراه هستید و در این مسیر شما را رها نخواهد کرد، هرگونه سوالی داشتید می توانید در بخش نظرات با ما درمیان بگذارید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.