Pythonissa yhden elementin sisältävät monisteet vaativat perässä olevan pilkun.

liiketoiminta

Tuplat, jotka ovat Pythonissa muuttumattomia (muuttumattomia) sekvenssiobjekteja.

Varovaisuutta on noudatettava, kun luodaan tupleja, joissa on vain yksi elementti, tai tyhjiä tupleja.

Tässä kuvataan seuraavat yksityiskohdat.

  • Tuple, jossa on 1 elementti
  • Monikon pyöreät sulut voidaan jättää pois.
  • Tyhjä tuple
  • Tuplat funktioiden argumenteissa

Tuple, jossa on 1 elementti

Jos yrität luoda tuplen, jossa on yksi elementti, ja kirjoitat vain yhden objektin pyöreiden sulkujen () sisälle, pyöreät sulut () jätetään huomiotta ja niitä ei käsitellä, eikä niitä pidetä tuplina.

single_tuple_error = (0)

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

Jälkimmäinen pilkku tarvitaan, jotta saadaan aikaan tuple, jossa on yksi elementti.

single_tuple = (0, )

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

Kun esimerkiksi käytät +-operaattoria useiden tuplien yhdistämiseen, huomaa, että jos yrität lisätä yhden elementin ja unohdat pilkun, saat virheilmoituksen.

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

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

Monikon pyöreät sulut voidaan jättää pois.

Syy siihen, miksi yhden elementin sisältävä tuple tarvitsee pilkun, on se, että tuple ei ole pyöreiden sulkujen () ympäröimä arvo vaan pilkulla erotettu arvo.

Pilkku luo tuplan, eivät pyöreät sulkeet.
Tuples — Built-in Types — Python 3.10.4 Documentation

Vaikka pyöreät sulut () jätetään pois, se käsitellään tuplana.

t = 0, 1, 2

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

Huomaa, että tarpeeton pilkku objektin jälkeen katsotaan tuplaksi.

t_ = 0,

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

Tyhjä tuple

Kuten edellä mainittiin, pyöreät hakasulkeet () voidaan jättää pois esitettäessä tupleja, mutta ne vaaditaan, kun muodostetaan tyhjä tuple.

Pelkkä välilyönti tai pilkku aiheuttaa SyntaxError-virheen.

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

Tyhjät tuplat voidaan tuottaa myös funktiolla tuple() ilman argumentteja.

empty_tuple = tuple()

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

Tuplat funktioiden argumenteissa

Monikon pyöreät hakasulkeet () vaaditaan myös silloin, kun syntaktinen epäselvyys on olemassa.

Funktioiden argumentit erotetaan toisistaan pilkulla, mutta tässä tapauksessa on tarpeen ilmaista nimenomaisesti, onko funktio tuple vai ei, käyttämällä pyöreitä hakasulkeita ().

Ilman sulkuja () jokainen arvo siirretään jokaiseen argumenttiin; sulkujen () kanssa jokainen arvo siirretään tuplana yhteen argumenttiin.

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

Jos tuple on merkitty tähdellä *, tuplen elementit voidaan laajentaa ja siirtää argumentteina.

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

Lisätietoja on seuraavassa artikkelissa.

Copied title and URL