Tecnologia vestible

Per començar Elements d'entrada Programació CircuitPython   Recursos CITCEA
Elements no electrònics Elements de sortida Programació Arduino    
Projectes Elements de control Dades pràctiques   Inici

Llistes i tuples (agrupacions d'elements)

Les llistes i les tuples són agrupacions d'elements però amb comportaments diferents. Comentarem primer les llistes, després els tuples i finalment el pas d'un tipus a l'altre.

Llistes

Les llistes són agrupacions d'elements que sí es poden modificar individualment. Els elements de les llistes poden ser de tipus diferents. Per exemple, definim una llista de tres elements:

    f = [262, 294, 330]
    k = [23, 12.54, "prova"]

També hi pot haver llistes amb un sol element:

    m = [22]

La funció len ens permet saber la mida d'una llista. Per exemple

    f = [262, 294, 330]
    a = len(f)  # a valdrà 3

Les llistes poden contenir llistes i tuples a dins, per exemple:

    h = [12, 23, [23, 12.54, 'prova']]
    s = [25, 327, (12.5, 1, 'hola')]

Es poden fer servir variables per definir els elements d'un tuple, per exemple:

    a = 2
    b = 7
    c = 5
    k = [a, b, c]  # k serà [2, 7, 5]

Podem llegir individualment els elements d'una llista. Per exemple:

    f = [262, 294, 330]
    a = f[0]  # a serà 262
    b = f[1]  # a serà 294
    c = f[2]  # a serà 330
              # Evidentment, f[3] donarà error

També podem agafar parts de la llista indicant el primer element que cal agafar i el primer que no s'ha d'agafar. Per exemple:

    f = [262, 294, 330]
    m = f[0:2]  # m serà [262, 294]
    n = f[0:3]  # n serà [262, 294, 330]

No hi ha cap problema en assignar nous valors als elements d'una llista. Per exemple:

    f = [262, 294, 330]
    f[2] = 77  # f serà [262, 294, 77]

Podem fer servir variables que continguin valors enters en els índexs. Per exemple:

    f = [262, 294, 330]
    a = 1
    f[a] = 77  # f serà [262, 77, 330]

Si l'índex és negatiu es compta des del final (començant per -1):

    f = [262, 294, 330]
    a = -1
    f[a] = 77  # f serà [262, 294, 77]

Podem modificar la llista:

    f = [262, 294, 330, 453]
    f[0:2] = [33, 44]         # f serà [33, 44, 330, 453]
    g = [262, 294, 330, 453]
    g[0:2] = [33, 44, 55]     # g serà [33, 44, 55, 330, 453]
    h = [262, 294, 330, 453]
    h[0:2] = [33]             # h serà [33, 330, 453]
    i = [262, 294, 330, 453]
    i[0:2] = []               # i serà [330, 453]
    j = [262, 294, 330, 453]
    j[1:1] = [33, 44]         # j serà [262, 33, 44, 294, 330, 453]

La funció del ens permet esborrar elements d'una llista. Per exemple

    f = [262, 294, 330, 345]
    del f[2]                  # f valdrà [262, 294, 345]
    g = [262, 294, 330, 345]
    del f[1:3]                # g valdrà [262, 345]

L'operador in ens permet saber si un determinat element és a la llista. Per exemple:

    f = [12, 23, 23, 'prova']
    a = "prova" in f  # a valdrà True
    b = 23 in f       # b valdrà True
    c = 45 in f       # c valdrà False

L'operador + permet concatenar llistes:

    f = [12, 23, 23, 'prova']
    g = [34, 11]
    a = f + g  # a serà [12, 23, 23, 'prova', 34, 11]

L'operador * permet repetir el contingut de la llista:

    g = [34, 11]
    a = 2 * g  # a serà [34, 11, 34, 11]

Tuples

Els tuples són agrupacions d'elements que no es poden modificar individualment. Els elements dels tuples poden ser de tipus diferents. Per exemple, definim un tuple de tres elements:

    f = (262, 294, 330)
    k = (23, 12.54, "prova")

Cal vigilar amb els tuples d'un sol element. Això no és un tuple:

    m = (22)

sinó una assignació de valor amb un parèntesi innecessari. El tuple corresponent seria:

    m = (22,)

La funció len ens permet saber la mida d'un tuple. Per exemple

    f = (262, 294, 330)
    a = len(f)  # a valdrà 3

Els tuples poden contenir tuples i llistes a dins, per exemple:

    h = (12, 23, (23, 12.54, 'prova'))
    w = (1, 2, [4.32, 16, 'Python'])

Es poden fer servir variables per definir els elements d'un tuple, per exemple:

    a = 2
    b = 7
    c = 5
    k = (a, b, c)  # k serà (2, 7, 5)

Podem llegir individualment els elements d'un tuple. Per exemple:

    f = (262, 294, 330)
    a = f[0]  # a serà 262
    b = f[1]  # a serà 294
    c = f[2]  # a serà 330
              # Evidentment, f[3] donarà error

També podem agafar parts del tuple indicant el primer element que cal agafar i el primer que no s'ha d'agafar. Per exemple:

    f = (262, 294, 330)
    m = f[0:2]  # m serà (262, 294)
    n = f[0:3]  # n serà (262, 294, 330)

No podem escriure individualment elements d'un tuple. Per exemple, la següent assignació no funcionaria:

    f = (262, 294, 330)
    f[1] = 423  # Error

Però d'aquesta manera obtindríem el resultat desitjat:

    f = (262, 294, 330)
    f = (f[0], 423, f[2])

Podem fer servir variables que continguin valors enters en els índexs. Per exemple:

    f = (262, 294, 330)
    a = 1
    k = f[a]  # k serà 294

Si l'índex és negatiu es compta des del final (començant per -1):

    f = (262, 294, 330)
    a = -1
    k = f[a]  # k serà 330

L'operador in ens permet saber si un determinat element és al tuple. Per exemple:

    f = (12, 23, 23, 'prova')
    a = "prova" in f  # a valdrà True
    b = 23 in f       # b valdrà True
    c = 45 in f       # c valdrà False

L'operador + permet concatenar tuples:

    f = (12, 23, 23, 'prova')
    g = (34, 11)
    a = f + g  # a serà (12, 23, 23, 'prova', 34, 11)

L'operador * permet concatenar tuples:

    g = (34, 11)
    a = 2 * g  # a serà (34, 11, 34, 11)

Conversió de tipus

Les funcions list i tuple ens permeten convertir un tipus en l'altre. Per exemple:

    f = (262, 294, 330)
    a = list(f)          # a serà [262, 294, 330]
    g = [23, 85, 94]
    b = tuple(f)         # b serà (23, 85, 94)

Podem modificar elements d'un tuple si el convertim momentàniament en una llista:

    f = (262, 294, 330)
    f = list(f)
    f[2] = 34
    f = tuple(f)         # f serà (262, 294, 34)

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.