Python-da dəyişməz (dəyişməz) ardıcıllıq obyektləri olan dəstlər.
Tək elementli və ya boş tuplelər yaradan zaman diqqətli olmaq lazımdır.
Aşağıdakı təfərrüatlar burada təsvir edilmişdir.
- 1 elementi olan dəzgah
- Dəyirmi mötərizələr buraxıla bilər.
- Boş dəst
- Funksiya arqumentlərindəki dəstlər
1 elementi olan dəzgah
Əgər siz bir elementlə tuple yaratmağa və dairəvi mötərizələrin () içərisinə yalnız bir obyekt yazmağa cəhd etsəniz, dairəvi mötərizələrə () məhəl qoyulmayacaq və işlənəcək və kortej hesab edilməyəcək.
single_tuple_error = (0)
print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>
Bir elementi olan tuple yaratmaq üçün arxadakı vergül tələb olunur.
single_tuple = (0, )
print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>
Məsələn, + operatorundan bir neçə dəstləri birləşdirmək üçün istifadə edərkən nəzərə alın ki, bir element əlavə etməyə çalışsanız və vergülü unutsanız, xəta alacaqsınız.
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple
print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)
Dəyirmi mötərizələr buraxıla bilər.
Bir elementi olan dəftərin vergülə ehtiyacı olmasının səbəbi dəyirmi mötərizə () içərisində olan dəyər deyil, vergüllə ayrılmış dəyər olmasıdır.
Dəyirmi mötərizələri deyil, dəzgahı yaradan vergüldür.
Tuples — Built-in Types — Python 3.10.4 Documentation
Dairəvi mötərizələr () buraxılsa belə, o, dəzgah kimi işlənir.
t = 0, 1, 2
print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>
Nəzərə alın ki, obyektdən sonra qoyulan lazımsız vergül tuple hesab olunur.
t_ = 0,
print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>
Boş dəst
Yuxarıda qeyd edildiyi kimi, dairəvi mötərizələr () dəzgahı təmsil edərkən buraxıla bilər, lakin boş bir dəst yaradan zaman tələb olunur.
Yalnız boşluq və ya vergül Sintaksis Xətası ilə nəticələnəcək.
empty_tuple = ()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
# empty_tuple_error =
# SyntaxError: invalid syntax
# empty_tuple_error = ,
# SyntaxError: invalid syntax
# empty_tuple_error = (,)
# SyntaxError: invalid syntax
Boş dəstlər heç bir arqument olmadan tuple() ilə də yaradıla bilər.
empty_tuple = tuple()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
Funksiya arqumentlərindəki dəstlər
Sintaktik qeyri-müəyyənlik olduqda belə dəyirmi mötərizə () tələb olunur.
Funksiya arqumentləri vergüllə ayrılır, lakin bu halda, dairəvi mötərizələrin () olması və ya olmaması ilə funksiyanın kortej olub-olmadığını açıq şəkildə göstərmək lazımdır.
Mötərizələr olmadan (), hər bir dəyər hər bir arqumentə ötürülür; mötərizə () ilə hər bir dəyər bir dəlil kimi bir arqumentə ötürülür.
def example(a, b):
print(a, type(a))
print(b, type(b))
example(0, 1)
# 0 <class 'int'>
# 1 <class 'int'>
# example((0, 1))
# TypeError: example() missing 1 required positional argument: 'b'
example((0, 1), 2)
# (0, 1) <class 'tuple'>
# 2 <class 'int'>
Tuple ulduz işarəsi ilə * işarələnibsə, dəftərin elementləri genişləndirilə və arqumentlər kimi ötürülə bilər.
example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>
Əlavə məlumat üçün aşağıdakı məqaləyə baxın.