Tuples, të cilët janë objekte të sekuencës së pandryshueshme (të pandryshueshme) në Python.
Duhet pasur kujdes kur krijohen tupa me një element të vetëm ose tuple bosh.
Detajet e mëposhtme përshkruhen këtu.
- Tuple me 1 element
- Kllapat e rrumbullakëta të dyfishta mund të anashkalohen.
- Tufë bosh
- Tuples në argumentet e funksionit
Tuple me 1 element
Nëse përpiqeni të gjeneroni një tufë me një element dhe shkruani vetëm një objekt brenda kllapave të rrumbullakëta (), kllapat e rrumbullakëta () do të shpërfillen dhe përpunohen dhe nuk do të konsiderohen tufë.
single_tuple_error = (0)
print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>
Kërkohet një presje pasuese për të krijuar një tuple me një element.
single_tuple = (0, )
print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>
Për shembull, kur përdorni operatorin + për të bashkuar shumë tupa, vini re se nëse përpiqeni të shtoni një element dhe harroni një presje, do të merrni një gabim.
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple
print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)
Kllapat e rrumbullakëta të dyfishta mund të anashkalohen.
Arsyeja pse një tuple me një element ka nevojë për presje është sepse një tuple nuk është një vlerë e mbyllur në kllapa të rrumbullakëta () por një vlerë e ndarë me presje.
Është presja që krijon tufën, jo kllapat e rrumbullakëta.
Tuples — Built-in Types — Python 3.10.4 Documentation
Edhe nëse kllapat e rrumbullakëta () hiqen, ai përpunohet si një tufë.
t = 0, 1, 2
print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>
Vini re se një presje e panevojshme pas një objekti konsiderohet një tufë.
t_ = 0,
print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>
Tufë bosh
Siç u përmend më lart, kllapat e rrumbullakëta () mund të hiqen kur përfaqësojnë një tuple, por kërkohen kur gjenerohet një tuple bosh.
Vetëm një hapësirë ose presje do të rezultojë në një gabim sintaksor.
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
Tuples bosh mund të gjenerohen gjithashtu nga tuple() pa argumente.
empty_tuple = tuple()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
Tuples në argumentet e funksionit
Kllapat e rrumbullakëta () kërkohen edhe kur ka një paqartësi sintaksore.
Argumentet e funksionit ndahen me presje, por në këtë rast, është e nevojshme të tregohet në mënyrë eksplicite nëse funksioni është një tufë apo jo nga prania ose mungesa e kllapave të rrumbullakëta ().
Pa kllapa (), çdo vlerë i kalohet çdo argumenti; me kllapa (), secila vlerë kalohet si një tufë në një argument.
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'>
Nëse tupleja shënohet me një yll *, elementët e tuples mund të zgjerohen dhe kalohen si argumente.
example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>
Për më shumë informacion, shihni artikullin e mëposhtëm.