Ühe elemendiga paarid Pythonis vajavad tagumist koma.

Äri

Tuplid, mis on Pythonis muutumatud (muutumatud) jadaobjektid.

Ühe elemendiga või tühjade tuplite genereerimisel tuleb olla ettevaatlik.

Siin on kirjeldatud järgmisi üksikasju.

  • Tupel 1 elemendiga
  • Tupli ümmargused sulgud võib ära jätta.
  • Tühi tupel
  • Tuplid funktsiooni argumentides

Tupel 1 elemendiga

Kui püüate genereerida ühe elemendiga tupli ja kirjutate ainult ühe objekti ümmarguste sulgude () sisse, siis ümmargusi sulgusid () ignoreeritakse ja töödeldakse ning neid ei loeta tupliks.

single_tuple_error = (0)

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

Tagumine koma on vajalik ühe elemendiga tupli genereerimiseks.

single_tuple = (0, )

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

Näiteks kui kasutate operaatorit + mitme tupli ühendamiseks, võtke arvesse, et kui proovite lisada ühe elemendi ja unustate koma, saate vea.

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

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

Tupli ümmargused sulgud võib ära jätta.

Põhjus, miks ühe elemendiga tupel vajab koma, on see, et tupel ei ole ümmarguste sulgude () sisse suletud väärtus, vaid komaga eraldatud väärtus.

See on koma, mis loob tupli, mitte ümmargused sulgud.
Tuples — Built-in Types — Python 3.10.4 Documentation

Isegi kui ümarad sulgud () jäetakse ära, töödeldakse seda tuplina.

t = 0, 1, 2

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

Pange tähele, et mittevajalik koma pärast objekti loetakse tupliks.

t_ = 0,

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

Tühi tupel

Nagu eespool mainitud, võib ümarad sulgud () tupli esitamisel ära jätta, kuid tühja tupli genereerimisel on need nõutavad.

Üksnes tühik või koma annab tulemuseks 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

Tühje tupleid saab genereerida ka tuple() abil ilma argumentideta.

empty_tuple = tuple()

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

Tuplid funktsiooni argumentides

Tupli ümarsulgud () on nõutavad isegi siis, kui esineb süntaktiline mitmetähenduslikkus.

Funktsiooni argumendid eraldatakse komadega, kuid sel juhul tuleb ümmarguste sulgude () olemasolu või puudumise abil selgesõnaliselt näidata, kas funktsioon on tupel või mitte.

Ilma sulgudeta () edastatakse iga väärtus igale argumendile; sulgudega () edastatakse iga väärtus tuplina ühele argumendile.

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

Kui tupel on tähistatud tärniga *, saab tupeli elemente laiendada ja edastada argumentidena.

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

Lisateavet leiate järgmisest artiklist.

Copied title and URL