Python3 Tuplas

Las tuplas de Python son similares a las listas, la diferencia es que los elementos de una tupla no se pueden modificar.

Las tuplas usan paréntesis( ), las listas usan corchetes[ ]。

Crear una tupla es muy sencillo, solo hay que añadir elementos entre paréntesis y separarlos con comas.

Ejemplo (Python 3.0+)

>>> tup1 = ('Google', 'Ejemplo', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d"   # No se necesitan paréntesis tampoco
>>> type(tup3)
<class 'tuple'>

Crear una tupla vacía

tup1 = ()

Cuando una tupla contiene solo un elemento, se debe añadir una coma después del elemento,, de lo contrario los paréntesis se tratarán como operadores:

Ejemplo (Python 3.0+)

>>> tup1 = (50)
>>> type(tup1)     # Sin coma, el tipo es entero
<class 'int'>

>>> tup1 = (50,)
>>> type(tup1)     # Con coma, el tipo es tupla
<class 'tuple'>

Las tuplas son similares a las cadenas; el índice comienza en 0, y se pueden segmentar, combinar, etc.


Acceder a tuplas

Se pueden usar índices para acceder a los valores de una tupla, como en el siguiente ejemplo:

Ejemplo (Python 3.0+)

#!/usr/bin/python3 tup1 = ('Google', 'Ejemplo', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print ("tup1[0]: ", tup1[0]) print ("tup2[1:5]: ", tup2[1:5])

El resultado del ejemplo anterior es:

tup1[0]:  Google
tup2[1:5]:  (2, 3, 4, 5)

Modificar tuplas

Los valores de los elementos de una tupla no se pueden modificar, pero podemos concatenar y combinar tuplas, como en el siguiente ejemplo:

Ejemplo (Python 3.0+)

#!/usr/bin/python3 tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # La siguiente operación de modificación de elementos de una tupla es ilegal. # tup1[0] = 100 # Crear una nueva tupla tup3 = tup1 + tup2 print (tup3)

El resultado del ejemplo anterior es:

(12, 34.56, 'abc', 'xyz')

Eliminar tuplas

Los valores de los elementos de una tupla no se pueden eliminar, pero podemos usar la instrucción del para eliminar toda la tupla, como en el siguiente ejemplo:

Ejemplo (Python 3.0+)

#!/usr/bin/python3 tup = ('Google', 'Ejemplo', 1997, 2000) print (tup) del tup print ("La tupla tup después de eliminarla:") print (tup)

Después de eliminar la tupla en el ejemplo anterior, la variable de salida mostrará un mensaje de error, como se muestra a continuación:

删除后的元组 tup : 
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print (tup)
NameError: name 'tup' is not defined

Operadores de tuplas

Al igual que las cadenas, entre tuplas se puede usar el+、+=y*signo + para realizar operaciones. Esto significa que se pueden combinar y copiar, y después de la operación se genera una nueva tupla.

Expresión de PythonResultadoDescripción
len((1, 2, 3))
3Cuenta el número de elementos
>>> a = (1, 2, 3)
>>> b = (4, 5, 6)
>>> c = a+b
>>> c
(1, 2, 3, 4, 5, 6)
(1, 2, 3, 4, 5, 6)Concatenación; c es una nueva tupla que contiene todos los elementos de a y b.
>>> a = (1, 2, 3)
>>> b = (4, 5, 6)
>>> a += b
>>> a
(1, 2, 3, 4, 5, 6)
(1, 2, 3, 4, 5, 6)Concatenación; a se convierte en una nueva tupla que contiene todos los elementos de a y b.
('Hi!',) * 4
('Hi!', 'Hi!', 'Hi!', 'Hi!')Repetición
3 in (1, 2, 3)
TrueExistencia del elemento
for x in (1, 2, 3): 
    print (x, end=" ")
1 2 3Iteración

Indexación y segmentación de tuplas

Como una tupla también es una secuencia, podemos acceder a elementos en posiciones específicas de la tupla, y también segmentar un rango de elementos según el índice, como se muestra a continuación:

Tupla:

tup = ('Google', 'Ejemplo', 'Taobao', 'Wiki', 'Weibo','Weixin')

Expresión de PythonResultadoDescripción
tup[1]'Ejemplo'Lee el segundo elemento
tup[-2]'Weibo'Lectura inversa, lee el penúltimo elemento
tup[1:]('Ejemplo', 'Taobao', 'Wiki', 'Weibo', 'Weixin')Segmenta los elementos, desde el segundo en adelante.
tup[1:4]('Ejemplo', 'Taobao', 'Wiki')Segmenta los elementos, desde el segundo hasta el cuarto elemento (índice 3).

A continuación se muestra un ejemplo en ejecución:

Ejemplo

>>> tup = ('Google', 'Ejemplo', 'Taobao', 'Wiki', 'Weibo','Weixin')
>>> tup[1]
'Ejemplo'
>>> tup[-2]
'Weibo'
>>> tup[1:]
('Ejemplo', 'Taobao', 'Wiki', 'Weibo', 'Weixin')
>>> tup[1:4]
('Ejemplo', 'Taobao', 'Wiki')
>>>

Funciones integradas de tuplas

Las tuplas de Python incluyen las siguientes funciones integradas:

N.ºMétodo y descripciónEjemplo
1len(tuple)
Cuenta el número de elementos de la tupla.
>>> tuple1 = ('Google', 'Ejemplo', 'Taobao')
>>> len(tuple1)
3
>>> 
2max(tuple)
Devuelve el valor máximo de los elementos de la tupla.
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>> 
3min(tuple)
Devuelve el valor mínimo de los elementos de la tupla.
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>> 
4tuple(iterable)
Convierte una serie iterable en una tupla.
>>> list1= ['Google', 'Taobao', 'Ejemplo', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Ejemplo', 'Baidu')

Acerca de que las tuplas son inmutables

La inmutabilidad de una tupla se refiere a que el contenido de la memoria a la que apunta la tupla no se puede cambiar.

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # No se permite modificar elementos
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # Ver la dirección de memoria
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # La dirección de memoria es diferente

En el ejemplo anterior se puede ver que la tupla tup, al ser reasignada, se vincula a un nuevo objeto, no se modifica el objeto original.

Otras extensiones