Туплес, који су непроменљиви (непроменљиви) објекти секвенце у Питхон-у.
Мора се водити рачуна када се генеришу торке са једним елементом или празним торкама.
Овде су описани следећи детаљи.
- Тупле са 1 елементом
- Округле заграде се могу изоставити.
- Празан тупле
- Торке у аргументима функције
Тупле са 1 елементом
Ако покушате да генеришете торбу са једним елементом и упишете само један објекат унутар округлих заграда (), округле заграде () ће бити занемарене и обрађене и неће се сматрати торком.
single_tuple_error = (0)
print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>
Зарез са зарезом је потребан да би се генерисала торка са једним елементом.
single_tuple = (0, )
print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>
На пример, када користите оператор + за спајање више торки, имајте на уму да ако покушате да додате један елемент и заборавите зарез, добићете грешку.
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple
print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)
Округле заграде се могу изоставити.
Разлог зашто је за торку са једним елементом потребна зарез је то што торка није вредност затворена у округле заграде () већ вредност одвојена зарезом.
Зарез је тај који ствара торку, а не округле заграде.
Tuples — Built-in Types — Python 3.10.4 Documentation
Чак и ако су округле заграде () изостављене, обрађује се као торка.
t = 0, 1, 2
print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>
Имајте на уму да се непотребан зарез после објекта сматра торком.
t_ = 0,
print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>
Празан тупле
Као што је горе поменуто, округле заграде () се могу изоставити када се представља торка, али су обавезне када се генерише празан скуп.
Сам размак или зарез ће довести до грешке у синтаксној грешци.
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
Празне торке такође може да генерише тупле() без аргумената.
empty_tuple = tuple()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
Торке у аргументима функције
Округле заграде () су потребне чак и када постоји синтаксичка нејасноћа.
Аргументи функције су одвојени зарезима, али је у овом случају неопходно експлицитно назначити да ли је функција тупле или не присуством или одсуством округлих заграда ().
Без заграда (), свака вредност се прослеђује сваком аргументу; са заградама (), свака вредност се прослеђује као тупле једном аргументу.
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'>
Ако је торка означена звездицом *, елементи торке се могу проширити и пренети као аргументи.
example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>
За више информација погледајте следећи чланак.