In [ ]:
fruta = "banano"
In [ ]:
dulce = 'bocadillo'
En este caso, los operadores + y * dan los siguientes resultados:
Operación | Uso | Resultado |
---|---|---|
+ | cadena + cadena | Une dos cadenas |
* | cadena * número | Repite una cadena tantas veces como sea el número |
Con las dos variables arriba definidas podemos realizar, por ejemplo, las siguientes operaciones:
In [ ]:
fruta + dulce
In [ ]:
fruta * 3
In [ ]:
dulce[0]
In [ ]:
dulce[:7]
In [ ]:
dulce[::-1]
Sin embargo, las cadenas no pueden ser modificadas, es decir, no les puede asignar nuevos elementos como a las listas y por tanto son inmutables. Esto lo podemos constatar a continuación:
In [ ]:
fruta[2] = 'z'
Las cadenas tienen varios métodos que pueden ser de gran utilidad. A ellos se puede acceder colocando un punto después del nombre de la variable a la que se le haya asignado una cadena y oprimiendo la tecla Tab. Por ejemplo, si después de fruta
colocamos un punto, veremos que aparece:
In [ ]:
fruta.
Nota: Ninguno de estos métodos modifican a la cadena original, pues como ya dijimos, las cadenas son inmutables.
Entre estos métodos, vamos a mirar que comportamiento tienen los siguientes:
In [ ]:
fruta.upper()
In [ ]:
fruta.count('a')
In [ ]:
fruta.replace('a', 'o')
In [ ]:
fruta.replace('ban', 'en')
In [ ]:
s = "Hola, mundo! Hola mundo"
In [ ]:
s.split()
También puede dividir una cadena por un determinado carácter para partirla en varias subcadenas:
In [ ]:
dulce.split('d')
In [ ]:
# Escribir la solución aquí
In [ ]:
muchas_frutas = 'banAnobanAnobananobanaNobananobananobanaNobaNanobanano\
bananobananobaNanobananobananobaNanobAnanobananobananobanaNobananobanAno\
bananobananobanaNobananobananobananobananobananobananobananobananobAnAno\
bAnanobananobananobananobananobananobanANobananobananobanaNobananobanano\
bananobanaNobAnAnobananobananobananobananobananobAnAnobananobananobanano\
baNanobananobananobaNaNobananobANanobananobananobananobAnanobananobanano\
bananobananobAnanobananobaNAnobananobananobananobaNanobanaNobANanobanano\
baNanobananobananobAnanobananobananobananobaNAnobananobanANobananobAnano\
bANanobanAnobananobaNanobananobananobananobananobananobananobAnanobanano\
bananobanAnobananobananobanAnobananobananobananobanAnobananobananobaNano\
bAnanobananobAnanobaNanobananobanaNobananobananobanANobananobananobANAno\
bananobananobaNAnobanaNobAnanobanAnobananobananobanAnobaNanobananobanaNo\
banaNobANAnobananobananobanAnobananobananobanANobananobanAnobananobanano\
banaNobananobAnanobananobAnanobananobanANobananobananobanAnobanaNobanano\
bananobAnanobananobaNanobananobanANobananobananobananobaNAnobananobanAno\
bananobananobananobaNanobananobananobanAnobananobananobANanobananobanano\
bananobananobaNanobananobananobananobAnanobananobananobananobananobanano\
bananobanANobananobanaNobAnanobananobaNanobaNAnobananobananobananobanano\
bananobananobananobananobananobAnanobanaNobananobananobaNAnobananobanANo\
bananobanaNobananobananobananobananobananobaNanobananobanaNobanAnobanAno\
bananobanAno'
Respuesta:
150
In [ ]:
# Escribir la solución aquí
In [ ]:
# Escribir la solución aquí
In [ ]:
dulce.center(2)
In [ ]:
dulce.center(10)
In [ ]:
dulce.center(16)
In [ ]:
dulce.center(30)
Una tupla es un arreglo inmutable de distintos tipos de datos. Es decir, es como si fuera una lista y tiene sus mismas propiedades, pero al igual que las cadenas, no es posible modificar ninguno de sus valores.
Las tuplas se definen con paréntesis ( )
en lugar de corchetes. Un ejemplo de tupla sería:
In [ ]:
tp = (1, 2, 3, 4, 'a')
In [ ]:
tp[3]
In [ ]:
tp[-1]
In [ ]:
tp[2:]
Pero no podemos modificar sus valores mediante nuevas asignaciones:
In [ ]:
tp[2] = 'b'
Nota: Es posible omitir los paréntesis al momento de definir una tupla si así se desea, lo cual es una práctica bastante extendida entre los programadores de Python. Por ejemplo, una asignación válida es:
In [ ]:
tp1 = 'a', 'b', 2
In [ ]:
tp1
In [ ]:
li = (3, 18, 17, 44, 14, 12, 29, 19, 4, 6, 17, 7, 14, 6, 8, 17, 17, 21, 65,\
19, 10, 31, 92, 17, 5, 15, 3, 14, 20, 12, 29, 57, 15, 2, 17, 1, 6, 17, 2,\
71, 12, 11, 62, 14, 9, 20, 43, 19, 4, 15)
In [ ]:
# Escribir la solución aquí
In [ ]:
# Escribir la solución aquí
In [ ]:
x, y, z = tp1
dado el valor de tp1
definido arriba?
In [ ]:
# Obtener los valores de x, y, z aquí
Teniendo en cuenta esto, explicar qué ocurre al realizar esta operación entre los elementos de una lista
In [ ]:
l = [-1, 6, 7, 9]
l[0], l[2] = l[2], l[0]
In [ ]:
# Imprimir la lista l aquí
In [ ]:
u, v = tp1
In [ ]:
# Escribir la solución aquí
Los diccionarios son una estructura de datos muy usada en Python. Ya hemos visto que los elementos de listas, cadenas y tuplas están indexados por números, es decir, li[0]
, fruta[1]
o tp[2]
. En su lugar, los diccionarios están indexados por claves (o keys en inglés), que pueden ser no sólo números, sino también cadenas, tuplas o cualquier otro tipo de datos que sea inmutable.
Lo interesante de los diccionarios es que nos sirven para relacionar dos tipos distintos de datos: las claves con sus valores (o values en inglés), que pueden ser mutables o inmutables.
Por ejemplo, supongamos que queremos guardar los códigos que varias personas están utilizando para entrar a un servicio web. Esto lo podemos hacer muy fácilmente con un diccionario, en el que las claves sean el nombre de cada persona y sus valores sean las contraseñas que estén usando.
Para ello, en Python podemos escribir algo como:
In [ ]:
codigos = {'Luis': 2257, 'Juan': 9739, 'Carlos': 5591}
Como podemos ver, los diccionarios se definen con llaves ({ }
). Las claves
son los elementos que están a la izquierda de los :
, mientras que los que
están a la derecha son los valores.
Como ya se mencionó, para extraer un elemento de un diccionario es necesario usar alguna de sus claves. En nuestro caso, las claves son los nombres de las personas. Por ejemplo, para extraer el código que le corresponde a Carlos
debemos escribir:
In [ ]:
codigos['Carlos']
o para el de Juan
In [ ]:
codigos['Juan']
Si alguien cambia de contraseña, podemos actualizar nuestro diccionario fácilmente haciendo una nueva asignación, por ejemplo:
In [ ]:
codigos['Luis'] = 1627
In [ ]:
codigos
Nota: Los diccionarios no tienen un orden interno por defecto. En el último ejemplo podemos ver como 'Luis'
aparece al final del diccionario, mientras que en la primera definición de códigos
aparecía al principio. No hay que preocuparse por ello.
O si una persona se retira del servicio, podemos eliminarla del diccionario usando el siguiente comando:
In [ ]:
codigos.pop('Juan')
In [ ]:
codigos
Si queremos introducir el nombre y la contraseña de una nueva persona, sólo es necesario usar una nueva clave y asignarle un valor, así
In [ ]:
codigos['Jorge'] = 6621
In [ ]:
codigos
Para saber si una persona ya está en el diccionario o no, usamos el siguiente método:
In [ ]:
'Carlos' in codigos.keys()
In [ ]:
'José' in codigos.keys()
Finalmente, para extraer todas las claves y los valores de un diccionario podemos usar los siguientes métodos:
In [ ]:
codigos.keys()
In [ ]:
codigos.values()
In [ ]:
notas = {
'Juan': [4.5, 3.7, 3.4, 5],
'Alicia': [3.5, 3.1, 4.2, 3.9],
'Germán': [2.6, 3.0, 3.9, 4.1]
}
calcular:
sum
y len
para obtener el promedio).Respuesta
4.15
In [ ]:
# Escribir la solución aquí
Respuesta
3.74
In [ ]:
# Escribir la solución aquí
In [ ]:
str(36.1)
In [ ]:
str([1,2,3])
In [ ]:
list((3, 2, 4))
In [ ]:
list('1457')
Para los diccionarios, list
sólo extrae las claves y no los valores
In [ ]:
list({'a': 12, 'b': 5})
In [ ]:
dict([[10, 'a'], [15, 't']])
El material de este notebook fue recopilado para Clubes de Ciencia Colombia 2017 por Luis Henry Quiroga (GitHub: lhquirogan) - Germán Chaparro (GitHub: saint-germain), y fue adaptado de https://github.com/PythonBootcampUniandes