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

4 سال پیش
تاپل در برنامه نویسی پایتون

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

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، همه چیز را در مورد تاپل در برنامه نویسی پایتون (python tuple) خواهید آموخت. به طور خاص ، تاپل ها چیست، چگونه می توان آنها را ایجاد کرد، چه زمانی از آنها استفاده کرد و روش های مختلفی که باید با آنها آشنا باشید.

پیشنهاد ویژه : پکیج آموزش پایتون

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

ایجاد تاپل در پایتون

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

یک تاپل می تواند هر تعداد آیتم داشته باشد و ممکن است انواع مختلفی داشته باشد (عدد صحیح، ممیز شناور، لیست، رشته و غیره).

# Different types of tuples

# 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)

 

خروجی

()
(۱, ۲, ۳)
(۱, 'Hello', 3.4)
('mouse', [8, 4, 6], (1, 2, 3))

 

بدون استفاده از پرانتز نیز می توان یک تاپل ایجاد کرد. این به بسته بندی ( packing) تاپل معروف است.

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

 

خروجی

(۳, ۴٫۶, 'dog')
۳
۴٫۶
dog

 

ایجاد یک تاپل با یک عنصر کمی مشکل است.

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

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>

# Creating a tuple having one element
my_tuple = ("hello",)
print(type(my_tuple))  # <class 'tuple'>

# Parentheses is optional
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

 

خروجی

<class 'str'>
<class 'tuple'>
<class 'tuple'>

 

 

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

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

۱٫ اندیس گذاری

ما می توانیم از عملگر اندیس [] برای دسترسی به موردی در تاپل ستفاده کنیم، اندیس از ۰ شروع می شود.

بنابراین، یک تاپل دارای ۶ عنصر دارای اندیس های ۰ تا ۵ خواهد بود. تلاش برای دستیابی به اندیس خارج از محدوده شاخص تاپل (۶،۷ ، … در این مثال) باعث ایجاد یک 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
۴

 

 

۲٫ اندیس گذاری منفی

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

اندیس ۱- به آخرین مورد، و اندیس ۲- به یکی به آخری اشاره دارد.

# 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

 

۳٫ برش زدن

با استفاده از عملگر برش “:” می توانیم به طیف وسیعی از موارد در یک تاپل دسترسی داشته باشیم.

# 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')

 

برش زدن را می توان با اندیس گذاری در بین عناصر را به خوبی درک کرد که در شکل زیر نشان داده شده است. بنابراین اگر می خواهیم به محدوده ای دسترسی پیدا کنیم، به اندیسی نیاز داریم که بخشی را از تاپل تقسیم کند.

تغییر یک تاپل در پایتون

برخلاف لیست ها، تاپل ها تغییرناپذیر هستند.

این بدان معنی است که عناصر یک تاپل پس از اختصاص دادن مقادیر قابل تغییر نیستند. اما، اگر عنصر خودش یک نوع داده قابل تغییر مانند لیست باشد، موارد تو در تو قابل تغییر است.

همچنین می توانیم به یک تاپل مقادیر مختلفی اختصاص دهیم.

# Changing tuple values
my_tuple = (4, 2, 3, [6, 5])


# TypeError: 'tuple' object does not support item assignment
# my_tuple[1] = 9

# However, item of mutable element can be changed
my_tuple[3][0] = 9    # Output: (4, 2, 3, [9, 5])
print(my_tuple)

# Tuples can be reassigned
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)

 

خروجی

(۴, ۲, ۳, [۹, ۵])
('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

 

ما می توانیم از عملگر + برای ترکیب دو تاپل استفاده کنیم. به این حالت concatenation یا الحاق می گویند.

همچنین می توانیم با استفاده از عملگر * عناصر را در یک تاپل به تعداد مشخصی تکرار کنیم.

هر دو عملگر + و * منجر به یک ایجاد یک تاپل جدید می شود.

# Concatenation
# Output: (1, 2, 3, 4, 5, 6)
print((1, 2, 3) + (4, 5, 6))

# Repeat
# Output: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)

 

خروجی

(۱, ۲, ۳, ۴, ۵, ۶)
('Repeat', 'Repeat', 'Repeat')

 

 

حذف تاپل در برنامه نویسی پایتون 

همانطور که در بالا گفته شد، ما نمی توانیم عناصر درون یک تاپل را تغییر دهیم. این بدان معناست که ما نمی توانیم عناصر را از یک تاپل حذف کنیم.

با این وجود حذف کامل یک تاپل با استفاده از کلیدواژه 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

 

متدهای تاپل در پایتون

متدهای افزودن یا حذف عناصردر تاپل در دسترس نیستند. فقط دو روش زیر موجود است.

چند نمونه از متدهای تاپل در پایتون

my_tuple = ('a', 'p', 'p', 'l', 'e',)

print(my_tuple.count('p'))  # Output: 2
print(my_tuple.index('l'))  # Output: 3

 

خروجی

۲
۳

 

سایر عملیات تاپل در پایتون

۱٫ آزمون عضویت تاپل

ما می توانیم با استفاده از کلیدواژه in، بررسی کنیم که آیا عنصری در تاپل وجود دارد یا خیر.

# Membership test in tuple
my_tuple = ('a', 'p', 'p', 'l', 'e',)

# In operation
print('a' in my_tuple)
print('b' in my_tuple)

# Not in operation
print('g' not in my_tuple)

 

خروجی

True
False
True

 

۲٫ تکرار از طریق یک تاپل

ما می توانیم از یک حلقه for برای تکرار هر مورد در یک تاپل استفاده کنیم.

# Using a for loop to iterate through a tuple
for name in ('John', 'Kate'):
    print("Hello", name)

 

خروجی

Hello John
Hello Kate

 

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

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

ما به طور کلی از تاپل برای انواع داده های ناهمگن (متفاوت) و لیست ها برای انواع داده های همگن (مشابه) استفاده می کنیم.
از آنجا که تاپل ها تغییرناپذیر هستند، تکرار از طریق تاپل سریعتر از لیست است. بنابراین کمی افزایش عملکرد وجود دارد.
از تاپل هایی که دارای عناصر تغییرناپذیری هستند می توان به عنوان یک کلید برای یک دیکشنری استفاده کرد. درلیست ها این امکان پذیر نیست.
اگر داده ای دارید که تغییر نمی کند، پیاده سازی آن به صورت تاپل از آن محافظت می کند.

منبع.

لیست جلسات قبل آموزش برنامه نویسی پایتون

  1. آموزش نصب و اجرای برنامه نویسی پایتون
  2. کلیدواژه ها و شناسه های برنامه نویسی پایتون
  3. دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
  4. متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون 
  5. انواع داده ها در برنامه نویسی پایتون
  6. تبدیل نوع در برنامه نویسی پایتون
  7. ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
  8. عملگرها در برنامه نویسی پایتون
  9. نام و دامنه در برنامه نویسی پایتون
  10. دستور شرطی if…else در برنامه نویسی پایتون
  11. حلقه for در برنامه نویسی پایتون
  12. حلقه while در برنامه نویسی پایتون
  13. دستورات break و continue در برنامه نویسی پایتون
  14. دستور pass در برنامه نویسی پایتون
  15. توابع در برنامه نویسی پایتون
  16. آرگومان تابع در برنامه نویسی پایتون
  17. تابع بازگشتی در برنامه نویسی پایتون
  18. تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
  19. متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
  20. کلیدواژه global در برنامه نویسی پایتون
  21. ماژول های برنامه نویسی پایتون
  22. پکیج ها در برنامه نویسی پایتون
  23. اعداد و تبدیل نوع داده در برنامه نویسی پایتون 
  24. لیست در برنامه نویسی پایتون
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه