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

بفرست برای دوستت
Telegram
WhatsApp
تاپل در پایتون

فهرست مطالب

در درس هفدهم دوره آموزش رایگان پایتون در مورد لیست ها در پایتون صحبت کردیم. در درس امروز می خواهیم در مورد تاپل ها در پایتون صحبت کنیم. تاپل در پایتون، همانند یک لیست، یک مجموعه از اشیاء پایتون است. دنباله‌ای از مقادیر ذخیره‌شده در یک تاپل می‌تواند از هر نوعی باشد و این مقادیر با اعداد صحیح شاخص‌گذاری (اندیس – index) می‌شوند.

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

 

ساخت یک تاپل

در پایتون، تاپل‌ها (Tuples) با قرار دادن یک دنباله از مقادیر که توسط ‘کاما’ جدا شده‌اند، با یا بدون استفاده از پرانتز برای گروه‌بندی داده‌ها، ایجاد می‌شوند.

توجه: ایجاد تاپل پایتون بدون استفاده از پرانتز به عنوان Tuple Packing شناخته می‌شود.

برنامه پایتون برای نمایش افزودن عناصر به یک تاپل.

# Creating an empty Tuple
Tuple1 = ()
print("Initial empty Tuple: ")
print(Tuple1)

# Creating a Tuple
# with the use of string
Tuple1 = ('datayad', 'For')
print("\nTuple with the use of String: ")
print(Tuple1)

# Creating a Tuple with
# the use of list
list1 = [1, 2, 4, 5, 6]
print("\nTuple using List: ")
print(tuple(list1))

# Creating a Tuple
# with the use of built-in function
Tuple1 = tuple('datayad')
print("\nTuple with the use of function: ")
print(Tuple1)

 خروجی:

Initial empty Tuple: 
()

Tuple with the use of String: 
('datayad', 'For')

Tuple using List: 
(1, 2, 4, 5, 6)

Tuple with the use of function: 
('d', 'a', 't', 'a', 'y', 'a', 'd') 

 

ایجاد یک تاپل با انواع داده‌های مختلف

تاپل ها در پایتون می‌توانند شامل هر تعداد عنصر و هر نوع داده‌ای (مانند رشته‌ها، اعداد صحیح، لیست و غیره) باشند.

همچنین می‌توان با یک عنصر تاپل ایجاد کرد، اما این کمی مشکل است. زیرا داشتن یک عنصر در پرانتز کافی نیست، و باید یک ‘کاما’ در انتها وجود داشته باشد تا آن را به تاپل تبدیل کند.

# Creating a Tuple
# with Mixed Datatype
Tuple1 = (5, 'Welcome', 7, 'datayad')
print("\nTuple with Mixed Datatypes: ")
print(Tuple1)

# Creating a Tuple
# with nested tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('python', 'datayad')
Tuple3 = (Tuple1, Tuple2)
print("\nTuple with nested tuples: ")
print(Tuple3)

# Creating a Tuple
# with repetition
Tuple1 = ('datayad',) * 3
print("\nTuple with repetition: ")
print(Tuple1)

# Creating a Tuple
# with the use of loop
Tuple1 = ('datayad')
n = 5
print("\nTuple with a loop")
for i in range(int(n)):
	Tuple1 = (Tuple1,)
	print(Tuple1)

 خروجی:

Tuple with Mixed Datatypes:
(5, 'Welcome', 7, 'datayad')
Tuple with nested tuples:
((0, 1, 2, 3), ('python', 'datayad'))
Tuple with repetition:
('datayad', 'datayad', 'datayad')
Tuple with a loop
('datayad',)
(('datayad',),)
((('datayad',),),)
(((('datayad',),),),)
((((('datayad',),),),),)

پیچیدگی‌ها برای ایجاد تاپل:

  زبان برنامه نویسی پایتون چیست؟ | مقدمات پایتون

پیچیدگی زمانی: O(1)

فضای کمکی: O(n)

 

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

تاپل‌ها غیرقابل تغییر (immutable) هستند و معمولاً شامل یک دنباله از عناصر مختلف هستند که از طریق باز کردن (Unpacking) یا شاخص‌گذاری (یا حتی با ویژگی در مورد تاپل‌های نام‌گذاری‌شده) به آنها دسترسی پیدا می‌کنیم.

لیست‌ها قابل تغییر (mutable) هستند و عناصر آنها معمولاً همگن هستند و با استفاده از حلقه بر روی لیست به عناصر آن دسترسی پیدا می‌کنیم.

توجه: در باز کردن تاپل، تعداد متغیرها در سمت چپ تساوی باید برابر با تعداد مقادیر در تاپل داده‌شده باشد.

# Accessing Tuple
# with Indexing
Tuple1 = tuple("datayad")
print("\nFirst element of Tuple: ")
print(Tuple1[0])


# Tuple unpacking
Tuple1 = ("datayad", "For", "you")

# This line unpack
# values of Tuple1
a, b, c = Tuple1
print("\nValues after unpacking: ")
print(a)
print(b)
print(c)

 خروجی:

First element of Tuple: 
d

Values after unpacking: 
datayad
For
you

 

پیچیدگی‌ها برای دسترسی به عناصر در تاپل:

پیچیدگی زمانی: O(1)

پیچیدگی فضایی: O(1)

 

اتصال (Concatenation) تاپل‌ها

اتصال تاپل فرآیند ادغام دو یا چند تاپل است. اتصال با استفاده از عملگر ‘+’ انجام می‌شود. همواره اتصال تاپل‌ها از انتهای تاپل اصلی انجام می‌شود. عملیات حسابی دیگر روی تاپل‌ها اعمال نمی‌شود.

  کلیدواژه‌ های پایتون - بخش اول

توجه – تنها انواع داده یکسان با استفاده از اتصال ترکیب می‌شوند، اگر یک لیست و یک تاپل ترکیب شوند، خطا ایجاد می‌شود.

اتصال تاپل ها

 

 

# Concatenation of tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('datayad', 'For', 'datayad')

Tuple3 = Tuple1 + Tuple2

# Printing first Tuple
print("Tuple 1: ")
print(Tuple1)

# Printing Second Tuple
print("\nTuple2: ")
print(Tuple2)

# Printing Final Tuple
print("\nTuples after Concatenation: ")
print(Tuple3)

خروجی:

Tuple 1: 
(0, 1, 2, 3)

Tuple2: 
('datayad', 'For', 'datayad')

Tuples after Concatenation: 
(0, 1, 2, 3, 'datayad', 'For', 'datayad')

 

پیچیدگی‌ها برای اتصال تاپل‌ها:

پیچیدگی زمانی: O(1)

پیچیدگی فضایی: O(1)

 

برش تاپل

برش یک تاپل برای دریافت یک محدوده خاص یا برش از عناصر فرعی تاپل انجام می‌شود. برش همچنین می‌تواند برای لیست‌ها و آرایه‌ها نیز انجام شود. شاخص‌گذاری در یک لیست به یک عنصر تکی منجر می‌شود در حالی که برش امکان به دست آوردن یک مجموعه از عناصر را فراهم می‌کند.

توجه – مقادیر کاهشی منفی می‌توانند برای برعکس کردن توالی تاپل‌ها استفاده شود.

اندیس دهی در تاپل

 

# Slicing of a Tuple

# Slicing of a Tuple
# with Numbers
Tuple1 = tuple('DATAYADFORYOU')

# Removing First element
print("Removal of First Element: ")
print(Tuple1[1:])

# Reversing the Tuple
print("\nTuple after sequence of Element is reversed: ")
print(Tuple1[::-1])

# Printing elements of a Range
print("\nPrinting elements between Range 4-9: ")
print(Tuple1[4:9])

خروجی:

Removal of First Element:
('A', 'T', 'A', 'Y', 'A', 'D', 'F', 'O', 'R', 'Y', 'O', 'U')
Tuple after sequence of Element is reversed:
('U', 'O', 'Y', 'R', 'O', 'F', 'D', 'A', 'Y', 'A', 'T', 'A', 'D')
Printing elements between Range 4-9:
('Y', 'A', 'D', 'F', 'O')

 

 

پیچیدگی‌ها برای گذر/جستجوی عناصر در تاپل‌ها:

پیچیدگی زمانی: O(1)

پیچیدگی فضایی: O(1)

 

حذف یک تاپل

تاپل‌ها غیرقابل تغییر هستند و بنابراین اجازه حذف یک بخش از آن را نمی‌دهند. اما با استفاده از متد ()del، کل تاپل حذف می‌شود.

توجه – چاپ تاپل پس از حذف منجر به ایجاد خطا می‌شود.

  گرفتن ورودی در پایتون و انواع حالات آن

 

# Deleting a Tuple

Tuple1 = (0, 1, 2, 3, 4)
del Tuple1

print(Tuple1)

 خروجی:

Traceback (most recent call last): 
File “/home/efa50fd0709dec08434191f32275928a.py”, line 7, in 
print(Tuple1) 
NameError: name ‘Tuple1’ is not defined

 

متدهای داخلی

روش داخلی

توضیحات

index()

در تاپل جستجو کرده و ایندکس مقدار داده‌شده که در دسترس است را بازمی‌گرداند

count()

فراوانی وقوع یک مقدار مشخص را بازمی‌گرداند

 

توابع داخلی

تابع داخلی

توضیحات

all()

اگر همه عناصر true باشند یا اگر تاپل خالی باشد، True را بازمی‌گرداند

any()

اگر هر عنصری از تاپل true باشد، True را بازمی‌گرداند. اگر تاپل خالی باشد، False را بازمی‌گرداند

len()

طول تاپل یا اندازه تاپل را بازمی‌گرداند

enumerate()

شی enumerate تاپل را بازمی‌گرداند

max()

عنصر ماکزیمم تاپل داده‌شده را بازمی‌گرداند

min()

عنصر مینیمم تاپل داده‌شده را بازمی‌گرداند

sum()

جمع اعداد در تاپل را بازمی‌گرداند

sorted()

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

tuple()

یک شی قابل تکرار را به یک تاپل تبدیل می‌کند

 

مقایسه لیست و تاپل

تشابهات

تفاوتها

توابعی که می‌توانند برای هر دو لیست و تاپل استفاده شوند: ()len()، max()، min()، sum()، any()، all()، sorted

متدهایی که نمی‌توانند برای تاپل استفاده شوند: ()append()، insert()، remove()، pop()، clear()، sort()، reverse

متدهایی که می‌توانند برای هر دو لیست و تاپل استفاده شوند: count()، index()

معمولاً ‘تاپل‌ها’ را برای انواع داده‌های مختلف و ‘لیست‌ها’ را برای انواع داده‌های مشابه استفاده می‌کنیم.

تاپل‌ها می‌توانند در لیست‌ها ذخیره شوند.

حلقه زدن روی یک ‘تاپل’ سریع‌تر از یک ‘لیست’ است.

لیست‌ها می‌توانند در تاپل‌ها ذخیره شوند.

لیست‌ها’ قابل تغییر هستند در حالی که ‘تاپل‌ها’ غیرقابل تغییر هستند.

هر دو ‘تاپل‌ها’ و ‘لیست‌ها’ می‌توانند در یکدیگر تو در تو شوند.

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

 

Rating 5.00 from 1 votes

لیست دروس دوره

آموزش پیشنهادی و مکمل

اگر سوالی در مورد این درس دارید، در کادر زیر بنویسید.

اشتراک در
اطلاع از
guest
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
سبد خرید

دوره رایگان یادگیری عمیق و شبکه عصبی

برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.
×