Sei sulla pagina 1di 12

Inicio Libros Tutoriales Eventos Foro Buscar

Libros / Algoritmos de Programacin con Python / Captulo 7. Tuplas y listas / 7.1. Tuplas

7.1. Tuplas
En la conversin de un tiempo a horas, minutos y segundos, en la seccin 3.6, usamos
n-uplas (o tuplas) como una construccin que nos permita que una funcin devolviera
mltiples valores.

En programacin, en general, al querer modelar objetos de la vida real, es muy comn


que querramos describir un objeto como un agrupamiento de datos de distintos tipos.
Veamos algunos ejemplos:

Una fecha la podemos querer representar como la terna da (un nmero entero),
mes (una cadena de caracteres), y ao (un nmero entero), y tendremos por
ejemplo: (25, "Mayo", 1810) .

Como datos de los alumnos queremos guardar nmero de padrn, nombre y

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Como datos de los alumnos queremos guardar nmero de padrn, nombre y
apellido, como por ejemplo (89766, "Alicia", "Hacker") .

Es posible anidar tuplas: como datos de los alumnos queremos guardar nmero
de padrn, nombre, apellido y fecha de nacimiento, como por ejemplo: (89766,
"Alicia", "Hacker", (9, "Julio", 1988)) .

7.1.1. Elementos y segmentos de tuplas


Las tuplas son secuencias, igual que las cadenas, y se puede utilizar la misma notacin
de ndices que en las cadenas para obtener cada una de sus componentes.

El primer elemento de (25, "Mayo", 1810) es 25.

El segundo elemento de (25, "Mayo", 1810) es "Mayo".

El tercer elemento de (25, "Mayo", 1810) es 1810.

>>> t=(25, "Mayo", 1810)


>>> t[0]
25
>>> t[1]
'Mayo'
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> t[2]
1810

ADVERTENCIA
Todas las secuencias en Python comienzan a numerarse desde 0. Es por eso que se
produce un error si se quiere acceder al n-simo elemento de un tupla:

>>> t[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

Tambin se puede utilizar la notacin de rangos, que se vio aplicada a cadenas para
obtener una nueva tupla, con un subconjunto de componentes. Si en el ejemplo de la
fecha queremos quedarnos con un par que slo contenga da y mes podremos tomar el
rango [:2] de la misma:

>>> t[:2]
(25, 'Mayo')
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Ejercicio 7.1. Cul es el cuarto elemento de (89766, "Alicia", "Hacker", (9,
"Julio", 1988)) ?

7.1.2. Las tuplas son inmutables


Al igual que con las cadenas, las componentes de las tuplas no pueden ser modificadas:

>>> t[2] = 2008


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

7.1.3. Longitud de tuplas


A las tuplas tambin se les puede aplicar la funcin len() para calcular su longitud. El
valor de esta funcin aplicada a una tupla nos indica cuntas componentes tiene esa
tupla.

>>> len(t)
3
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Ejercicio 7.2. Cul es la longitud de (89766, "Alicia", "Hacker", (9, "Julio",
1988)) ?

Una tupla vaca es una tupla con 0 componentes, y se la indica como () .

>>> z=()
>>> len(z)
0

>>> z[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

Una tupla unitaria es una tupla con una componente. Para distinguir la tupla unitaria de
la componente que contiene, Python exige que a la componente no slo se la encierre
entre parntesis sino que se le ponga una coma a continuacin del valor de la
componente (as (1810) es un nmero, pero (1810,) es la tupla unitaria cuya nica
componente vale 1810 ).

>>> u=(1810)
>>> len(u)
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> len(u)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

>>> u=(1810,)
>>> len(u)
1
>>> u[0]
1810

7.1.4. Empaquetado y desempaquetado de tuplas


Si a una variable se le asigna una secuencia de valores separados por comas, el valor de
esa variable ser la tupla formada por todos los valores asignados. A esta operacin se
la denomina empaquetado de tuplas.

>>> a=125
>>> b="\#"
>>> c="Ana"
>>> d=a,b,c

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> len(d)
3
>>> d
(125, '\#', 'Ana')
>>>

Si se tiene una tupla de longitud k , se puede asignar la tupla a k variables distintas y en


cada variable quedar una de las componentes de la tupla. A esta operacin se la
denomina desempaquetado de tuplas.

>>> x,y,z = d
>>> x
125
>>> y
'\#'
>>> z
'Ana'

ADVERTENCIA
Si las variables no son distintas, se pierden valores. Y si las variables son
exactamente k se produce un error.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> p,p,p = d
>>> p
'Ana'
>>> m,n = d
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> m,n,o,p=d
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 3 values to unpack

7.1.5. Ejercicios con tuplas


Ejercicio 7.3. Cartas como tuplas.

1. Proponer una representacin con tuplas para las cartas de la baraja francesa.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
2. Escribir una funcin poker que reciba cinco cartas de la baraja francesa e informe
(devuelva el valor lgico correspondiente) si esas cartas forman o no un poker (es
decir que hay 4 cartas con el mismo nmero).

Ejercicio 7.4. El tiempo como tuplas.

1. Proponer una representacin con tuplas para representar el tiempo.

2. Escribir una funcin sumaTiempo que reciba dos tiempos dados y devuelva su suma.

Ejercicio 7.5. Escribir una funcin diaSiguienteE que dada una fecha expresada como
la terna (Da, Mes, Ao) (donde Da, Mes y Ao son nmeros enteros) calcule el da
siguiente al dado, en el mismo formato.

Ejercicio 7.6. Escribir una funcin diaSiguienteT que dada una fecha expresada como
la terna (Da, Mes, Ao) (donde Da y Ao son nmeros enteros, y Mes es el texto Ene ,
Feb , ..., Dic , segn corresponda) calcule el da siguiente al dado, en el mismo formato.

Anterior Siguiente
Captulo 7. Tuplas y listas 7.2. Listas

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano,
Nicols Paez. La copia y redistribucin de esta pgina se permite bajo los trminos de la licencia Creative
Commons Atribucin - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.

INDICE DE CONTENIDOS

1. Algunos conceptos bsicos

2. Programas sencillos

3. Funciones

4. Decisiones

5. Ms sobre ciclos

6. Cadenas de caracteres

Captulo 7. Tuplas y listas

7.1. Tuplas

7.2. Listas
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
7.3. Ordenar listas

7.4. Listas y cadenas

7.5. Resumen

7.6. Ejercicios

8. Algoritmos de bsqueda

9. Diccionarios

10. Contratos y Mutabilidad

11. Manejo de archivos

12. Manejo de errores y excepciones

13. Procesamiento de archivos

14. Objetos

15. Polimorfismo, Herencia y Delegacin

16. Listas enlazadas

17. Pilas y colas

18. Modelo de ejecucin de funciones y recursividad

19. Ordenar listas

20. Algunos ordenamientos recursivos

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

Potrebbero piacerti anche