Tuple z enim samim elementom v Pythonu zahtevajo vejico na koncu

Posel

Tuple, ki so nespremenljivi (nespremenljivi) zaporedni objekti v Pythonu.

Pri generiranju nizov z enim samim elementom ali praznih nizov je treba biti previden.

Tu so opisane naslednje podrobnosti.

  • Tuple z 1 elementom
  • Okrogle oklepaje lahko izpustite.
  • Prazen tuple
  • Tuple v argumentih funkcij

Tuple z 1 elementom

Če poskušate ustvariti tuple z enim elementom in v okrogle oklepaje () zapišete samo en objekt, bodo okrogli oklepaji () prezrti in obdelani ter ne bodo veljali za tuple.

single_tuple_error = (0)

print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>

Če želite ustvariti tuple z enim elementom, je potrebna končna vejica.

single_tuple = (0, )

print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>

Pri uporabi operatorja + za združevanje več nizov upoštevajte, da se bo pri poskusu dodajanja enega elementa in pozabi na vejico pojavila napaka.

# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple

print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)

Okrogle oklepaje lahko izpustite.

Tuple z enim elementom potrebuje vejico zato, ker tuple ni vrednost, zaprta v oglatih oklepajih (), temveč vrednost, ločena z vejico.

Za nastanek tupla poskrbi vejica in ne oglati oklepaji.
Tuples — Built-in Types — Python 3.10.4 Documentation

Tudi če so okrogli oklepaji () izpuščeni, se obdela kot tuple.

t = 0, 1, 2

print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>

Upoštevajte, da se nepotrebna vejica za predmetom šteje za tuple.

t_ = 0,

print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>

Prazen tuple

Kot smo že omenili, lahko okrogle oklepaje () izpustite, kadar predstavljate tuple, vendar so obvezni, kadar generirate prazen tuple.

Samo presledek ali vejica povzroči napako SyntaxError.

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

Prazne kupole lahko ustvari tudi funkcija tuple() brez argumentov.

empty_tuple = tuple()

print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>

Tuple v argumentih funkcij

Okrogli oklepaji () so obvezni tudi v primeru skladenjske dvoumnosti.

Argumenti funkcij so ločeni z vejicami, vendar je v tem primeru treba izrecno navesti, ali je funkcija tuple ali ne, s prisotnostjo ali odsotnostjo okroglih oklepajev ().

Brez oklepajev () se vsaka vrednost posreduje vsakemu argumentu; z oklepaji () se vsaka vrednost posreduje kot tuple enemu argumentu.

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

Če je tuple označen z zvezdico *, lahko elemente tupla razširimo in jih posredujemo kot argumente.

example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>

Za več informacij glejte naslednji članek.

Copied title and URL