Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Colecciones en Python - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, estamos aquí en... vamos a hablar de la cuarta unidad de Python, en la que ya vamos a tratar las colecciones.
00:00:01
Principalmente estas cuatro, cadenas de caracteres, listas, tuplas y diccionario.
00:00:10
Ya sabéis que las cadenas de caracteres son como strings.
00:00:16
Luego las listas serían como una especie de array que podéis ver en C o en Java,
00:00:19
pero son diferentes
00:00:27
porque los arrays en C y en Java
00:00:30
son
00:00:32
elementos del mismo tipo
00:00:33
¿vale?
00:00:36
si son cadenas de
00:00:37
son caracteres
00:00:39
o son
00:00:41
integer o float
00:00:42
pero son del mismo tipo
00:00:44
sin embargo en Python sí que pueden ser
00:00:46
diferentes tipos, lo vamos a ver
00:00:49
luego tenemos las tuplas
00:00:50
que serían como listas pero
00:00:52
inmutables, ¿esto qué significa?
00:00:55
Pues que son como constantes, ¿verdad?
00:00:57
Una vez que las inicializas, tú no vas a poder coger un método
00:01:00
o le vas a poder asignar otro elemento a una posición.
00:01:05
Por eso son inmutables, ¿no?
00:01:10
Te va a decir que no te deja al intentar ejecutarlo.
00:01:12
¿Y esto para qué es útil, verdad?
00:01:15
Pues pensad que hay ciertos datos que tú vas a tratar en el código,
00:01:17
pero quizás no quieras que se cambien porque son cosas que son fijas.
00:01:27
Entonces utilizamos las tuplas.
00:01:31
Y también es conveniente utilizar las tuplas porque son más eficientes que las listas.
00:01:33
Entonces, si tenemos elementos que no van a cambiar,
00:01:37
pues deberíamos utilizar tuplas por esta razón precisamente.
00:01:39
Un ejemplo que he pensado yo por que lo visualicéis
00:01:43
podría ser los típicos combos de comida rápida, ¿verdad?
00:01:48
Que te dicen combo 1, combo 2, combo 3,
00:01:53
que te entran patatas, hamburguesas, refrescos, lo que sea.
00:01:55
Esos combos, en general, no van a cambiar.
00:02:00
Los estableces y luego, a partir de esos combos,
00:02:05
si alguien te pide el combo 1,
00:02:08
tú no vas a coger y le vas a modificar.
00:02:10
Es el combo 1 y ya está.
00:02:12
Y entonces, con ese combo 1 lo vas a facturar,
00:02:14
se lo vas a entregar, etc.
00:02:17
Vas a hacer ciertas operaciones,
00:02:19
pero sin cambiar el contenido del combo.
00:02:20
Para eso se utilizan las tuplas.
00:02:23
Y luego tenemos los diccionarios, que los diccionarios en Java serían como las hash table, que son elementos clave-valor.
00:02:25
Entonces, esto es como muy útil, ¿verdad? Porque cuando veamos programación orientada a objetos, que con ese tipo de programación ya es más potente, podemos hacer más cosas,
00:02:34
pues podréis imaginar que si la clave es el DNI y el valor es la persona,
00:02:46
pues con el DNI puedo obtener un objeto que sea persona
00:02:51
y esa persona tendrá todos los atributos de edad, peso, localización, ciudad de nacimiento, lo que sea.
00:02:54
Entonces, clave y valor.
00:03:08
Vamos un poco con el tema.
00:03:10
pues eso, ya tenéis abierta la unidad 4
00:03:11
aquí tenéis el contenido
00:03:16
y os he subido
00:03:17
esto que son
00:03:18
códigos de colecciones
00:03:22
que lo he escrito yo
00:03:24
para que tengáis algo por lo que empezar
00:03:27
y ver un poco como
00:03:29
funcionan las funciones
00:03:31
que tratan en el contenido
00:03:33
y bueno
00:03:35
porque siempre es más fácil
00:03:37
empezar con algo que está hecho
00:03:39
es como el pánico del escritor a las hojas en blanco
00:03:41
y de hecho si alguna vez trabajáis de programador
00:03:45
o ya habéis trabajado de programador
00:03:48
normalmente no te dan un código para que empieces
00:03:49
es raro empezar en un proyecto desde cero
00:03:54
normalmente ya te dan, entras en un proyecto empezado
00:03:57
o te dan ya código hecho
00:04:00
al que tú tienes que hacer ciertas modificaciones
00:04:03
entonces eso es como mucho más fácil porque entiendes
00:04:05
vas entendiendo cómo funciona el código
00:04:08
cómo se programa en esa empresa, las interdependencias que tienen y a partir de ahí, una vez que lo entiendes, es cuando le metes mano, ¿vale?
00:04:10
Pues aquí es un poco igual, os voy a dejar, bueno, ya os he dejado este código que incluye ejemplos de cadenas, listas, tuplas y diccionarios, como ya hemos visto
00:04:20
y a partir de aquí pues podéis ir cacharreando, ¿vale?
00:04:30
Entonces, vamos a empezar con las cadenas.
00:04:35
Aquí he declarado dos cadenas, cadena 1 y cadena 2.
00:04:39
Entonces, ya veis que como ya hemos ido haciendo a lo largo de este curso,
00:04:44
porque claro, ya hemos operado en realidad, hemos hecho ya cosillas con cadenas, listas y diccionarios anteriormente, ¿verdad?
00:04:50
Ahora lo vamos a ver un poco más en particular. Entonces, el problema de las cadenas es que te lo toma todo literal. Pero cuando le metes un slash, el intérprete ya entiende que aquí es un código especial.
00:04:57
Entonces, slash n es un salto de pantalla. Por ejemplo, slash t es esta ovulación.
00:05:16
Entonces, ya aquí entiende que tenemos hola y un salto de pantalla.
00:05:22
Aquí en cadena le he dejado un espacio al principio y uno al final porque quería que vierais cómo funciona la función strip.
00:05:27
Como indico aquí, elimina espacios al principio y final de la cadena.
00:05:34
Entonces, si ejecutamos esto, aquí estamos. Eliminar espacios.
00:05:39
¿Ves? Los espacios que he puesto aquí al principio y al final desaparecen. Entonces, vamos un poco uno por uno. Tenemos concatenar exacta línea y vamos a unir la cadena 1 y la cadena 2 con el operador más.
00:05:49
Esto se hace en muchos lenguajes de programación
00:06:09
Como C o Java
00:06:14
Es algo normal
00:06:15
Que para concretar cadenas
00:06:16
Utilizamos el operador más
00:06:18
Y ya está
00:06:21
Luego otro salto de línea
00:06:23
Luego slice
00:06:25
Que es como trozo
00:06:26
Hacer una porción
00:06:28
Entonces
00:06:30
Aquí lo que vamos a hacer es un corte
00:06:32
De la cadena
00:06:36
De la cadena 2
00:06:37
Entonces cogemos de la 0 a la 5. Si nos ponemos aquí, contamos 1, 2, 3, 4 y 5. Hasta aquí. Y es lo que nos saca. ¿Vale?
00:06:38
Luego, ¿qué más tenemos? Tenemos subcadena. Por ejemplo, aquí, para poner vida entre comillas, tenemos que poner slash, ¿vale? Porque si no, se va a liar, va a pensar que estas comillas es el fin de esta cadena.
00:06:49
pero si le ponemos slash comillas
00:07:11
ya sé que te lo mete dentro de la cadena
00:07:14
y te lo pone entre comillas
00:07:19
es el truquillo que se utiliza
00:07:21
que os lo he puesto ahí para que lo veáis también
00:07:23
entonces, aquí lo que tenemos
00:07:26
es que quiero encontrar la palabra vida
00:07:30
dentro de la cadena 2
00:07:33
y como esto va a devolver
00:07:35
un número
00:07:39
que en este caso es 17
00:07:41
porque la cadena vida
00:07:44
si nos ponemos aquí está el
00:07:46
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
00:07:47
11, 12, 13, 14, 15, 16
00:07:50
y 17, empieza ahí
00:07:52
¿verdad?
00:07:54
nos dice que ha encontrado
00:07:56
la palabra vida en la posición 17
00:07:58
y como aquí estamos concatenando
00:08:00
cadenas
00:08:02
lo tengo que pasar a stream
00:08:03
por eso lo utilizo
00:08:05
que también podemos utilizar un
00:08:06
fString
00:08:09
y ponerlo aquí
00:08:11
entre cochetes, sí, claro que sí
00:08:13
ya lo hemos utilizado antes
00:08:15
pero bueno, están estas dos formas
00:08:17
luego tenemos la función upper
00:08:19
para poner la cadena en mayúscula
00:08:23
lower para poner la cadena
00:08:25
en minúscula
00:08:27
strip, que ya lo hemos
00:08:29
tratado, y luego replace
00:08:31
que aquí lo que estamos
00:08:33
haciendo es cogiendo la cadena 2
00:08:35
y en todas las que sean A, como esta, esta y esta, lo vamos a cambiar por E.
00:08:37
Entonces, aquí ya pone cómo TV le vive, ¿vale?
00:08:44
Luego tenemos otras fórmulas para concatenar, por ejemplo, con el join, ¿vale?
00:08:56
Si tengo aquí hola, una lista con hola y mundo, puedo decir que a esto le concatene el i, ¿vale?
00:09:01
Entonces, lo que va a hacer es sacar hola y mundo, ¿vale? Con el join.
00:09:17
Luego tenemos las fstream, que es lo que habíamos comentado, que esto también se puede hacer con fstream.
00:09:26
Y con el .2f lo que hacemos es que saque solo los dos primeros decimales.
00:09:32
Y luego también tenemos la función split, que lo que hace es dividir la frase en palabras, ¿vale?
00:09:40
En una lista de palabras, con la cual luego podríamos manipularla y utilizarla en nuestro provecho, dependiendo de lo que se necesite, ¿vale?
00:09:56
Esto serían las cadenas. Vamos con las listas. Aquí tenemos una lista simple en la que numeramos del 1 a 5, por ejemplo. Luego tenemos listas complejas que tienen dos elementos por posición y de diferente tipo, como hemos dicho antes, que pueden ser como arrays.
00:10:07
Esto sería un array, pero esto sí que es una lista con tipos diferentes. Aquí tenemos números, texto con un string, un booleano, un float. Entonces podemos tener varias combinaciones en este sentido. Voy aquí a limpiar el terminal para que se vea fácil.
00:10:29
Vale, aquí me gustaría pararme en las funciones lambda, map y filter, ¿vale? Entonces, las funciones lambda es como si hiciéramos una función pero temporal, no es algo que va a estar ahí permanente para que lo utilices, ¿no?
00:10:48
Por ejemplo aquí, con este lambda lo que hacemos es que por cada elemento le sumamos uno.
00:11:10
Podríamos hacer por ejemplo una función que se llamara suma1 y le pusiéramos algo parecido a esto, que retornara un entero.
00:11:15
Y le pasaríamos el número al que quiere sumar.
00:11:27
Pero esto es mucho más eficiente porque solo se va a ejecutar aquí y luego se va a destruir y se puede utilizar de esta forma, ¿no? Para funciones de este tipo.
00:11:31
Entonces, map, como indico ahí arriba, permite aplicar una operación a cada elemento de una lista. Vale, entonces recibe dos parámetros.
00:11:44
El primero es la función aplicar y el segundo es la lista donde la vamos a aplicar.
00:11:53
Entonces aquí con el lambda lo que estamos diciendo es que por cada elemento le sume uno.
00:11:59
¿A qué? A la lista simple.
00:12:05
Entonces si lo ejecutamos vamos a ver que está sumándole uno a la lista.
00:12:08
2, 3, 4, 5, 6, cuando antes empezaba por el 1.
00:12:15
Luego seguimos con el filter.
00:12:22
Y dice, filter, comprueba los elementos de nuestra lista si cumplen una determinada condición y si lo cumplen, la mete en otra lista resultado.
00:12:24
Entonces, el resultado va a ser una lista diferente.
00:12:38
Una lista resultado, como pongo yo aquí.
00:12:43
Entonces, lo que devuelva hay que transformarlo a lista.
00:12:46
Y se utiliza de la misma manera.
00:12:54
se utiliza filter, la condición
00:12:57
que tiene que cumplir para que ese elemento
00:12:59
se meta en la nueva lista
00:13:01
y la lista que vamos a chequear.
00:13:03
¿Vale?
00:13:06
Aquí lo que estamos haciendo es que solo
00:13:07
queremos los
00:13:09
los pares.
00:13:11
¿Vale?
00:13:16
Entonces se mete el 2
00:13:16
y el 4. La verdad es que
00:13:19
se tendría que meter el 6 también.
00:13:21
La verdad es que no sé...
00:13:24
Bueno, ya sé por qué o sí.
00:13:26
lista pares
00:13:28
aquí lista simple
00:13:31
claro, lista simple la hemos modificado
00:13:33
no, no la hemos modificado
00:13:36
ah, claro, por eso
00:13:37
claro, es que la lista simple
00:13:39
no es esta
00:13:42
porque esta es lista plus
00:13:42
la lista simple es esta de aquí
00:13:45
que va del 1 al 5
00:13:47
y por eso solo nos saca el 2 y el 4
00:13:49
vale, claro
00:13:51
porque va del 1 al 5
00:13:53
que es la que está cogiendo
00:13:56
Claro, si hubiera puesto lista plus aquí, pues sí que estaría cogiendo el 4 y el 6, exactamente.
00:13:57
Pues eso, ponemos aquí con un lambda la condición que tiene que cumplir para que ese elemento se incorpore a la nueva lista.
00:14:03
¿Vale?
00:14:11
Entonces, un pequeño programilla para ver cómo funcionan las listas.
00:14:14
Aquí tenemos una lista vacía de frutas.
00:14:19
¿Vale?
00:14:23
Se quiere igual a true para que se meta por primera vez.
00:14:23
Y pedimos una nueva fruta.
00:14:26
Entonces, si esta nueva fruta no está en frutas, la vamos a añadir con append.
00:14:29
Con append añades nuevos elementos a la lista y la imprimimos.
00:14:41
Que sí que está en frutas.
00:14:46
Vamos a ver en qué posición está.
00:14:48
Entonces, vamos a imprimir la posición. La fruta ya existe en posición tal.
00:14:54
Y vamos a pedir si quiere continuar.
00:15:00
Si dice que sí, pues volverá.
00:15:03
Y si dice que no, saldrá.
00:15:05
Así de sencillo.
00:15:06
Entonces, si ponemos manzana, me la muestra.
00:15:08
Pera, uva.
00:15:13
Ahora miramos pera de nuevo.
00:15:16
Y me dice que está en la posición 1.
00:15:19
Porque manzana está en la posición 0 y pera está en la posición 1.
00:15:22
¿Vale?
00:15:28
Ya sabéis cómo funciona.
00:15:29
Vamos con las tuplas.
00:15:33
Vamos a borrar el terminal de nuevo.
00:15:35
Entonces, como indico aquí, las tuplas son más rápidas que las listas y son
00:15:39
inmutables, que no pueden cambiar, ¿vale? Pueden aceptar varios tipos, íntegrar un
00:15:44
string, o una lista, un float... Entonces,
00:15:50
ponemos un string, o sea, sí, una cadena, ¿vale? Como esta, frase para trabajar con
00:15:57
tuplas, y la convertimos a tupla, con la función tuple, ¿vale?
00:16:03
Ya se ha convertido en una tupla, que quiere decir que esta tupla no la vamos a poder modificar.
00:16:09
Y la imprimimos.
00:16:18
Como veis, se imprime así.
00:16:22
Luego, ¿qué más tenemos?
00:16:27
Tupla numérica, del 1 al 9.
00:16:29
Entonces, una particularidad que tiene Python, tanto para listas como para tuplas,
00:16:32
es que los índices pueden tomar números, valores negativos.
00:16:39
que es bastante curioso, ¿verdad? Porque normalmente lo que vemos en Java o en .NET es que va de 0 a infinito,
00:16:44
dependiendo del número de elementos que tenga el array o la lista, ¿verdad?
00:16:52
Pero aquí puede coger números negativos, y eso quiere decir que va a empezar desde el final.
00:16:57
Entonces, este es el elemento menos 1, este es el elemento menos 2, y por eso nos saca 8,
00:17:02
porque aquí estamos sacando el elemento menos 2.
00:17:09
y bueno, pues lo que tenemos
00:17:12
en las tuplas es una colección
00:17:18
de read-only, o sea, solo vamos a poder
00:17:21
leer información de la tupla, no la vamos a poder modificar por todo lo que he
00:17:25
explicado. Entonces, ¿qué funciones
00:17:30
tenemos? Tenemos la de length, que nos dice que la longitud son
00:17:34
32 caracteres, es decir, te dice la longitud de
00:17:37
de la tupla, el valor mínimo, que es 1, y el valor máximo, que es 9, ¿vale? Entonces, vamos con el diccionario.
00:17:41
Los diccionarios son colecciones de clave-valor, como la hashtag en Java, si alguno ha trapichado con Java.
00:17:55
Y a ver... Sí. Tenemos clave, valor. Nombre, Juan. Edad, 23. Ciudad, Madrid.
00:18:04
Vale, entonces, si queremos acceder a los elementos, no accedemos y decimos diccionario 1 para saber la edad.
00:18:18
No, decimos diccionario edad.
00:18:26
Y con esto lo que sacamos es el valor.
00:18:29
Llamamos a la clave y obtenemos el valor.
00:18:33
Nombre, Juan.
00:18:38
Ciudad, Madrid.
00:18:39
Entonces, también se puede crear un diccionario de esta forma o con la función dict.
00:18:43
Entonces tenemos una persona con estos atributos.
00:18:51
Clave, valor, clave, valor, clave, valor.
00:18:57
Lo que tenemos entonces es que persona es un diccionario,
00:19:03
por lo tanto podemos utilizar funciones de los diccionarios,
00:19:09
como son keys, que lo que te hace es sacar todas las claves de ese diccionario,
00:19:13
nombre, edad y ciudad.
00:19:19
Te la va a sacar, lo suyo es transformarlo en una lista,
00:19:22
porque son listas de elementos. Luego tenemos los valores con values, que vamos a hacer lo mismo, y luego el diccionario entero.
00:19:26
Para sacar el diccionario entero lo que vamos a hacer es utilizar la función items, ¿vale? Y ya te sacaría el diccionario entero.
00:19:36
¿Cómo recorremos un diccionario? Pues de esta manera, for clave valor in persona.items, es decir, que por cada clave valor
00:19:44
en todo el diccionario.
00:19:54
Porque hemos dicho que con persona.items
00:19:58
lo que hacemos es sacar todo el diccionario.
00:20:01
Entonces, pues lo podemos poner así
00:20:04
para que aparezca idéntico a como lo estamos viendo.
00:20:06
Entonces, vale aquí.
00:20:15
Esto es lo que devuelve.
00:20:19
Por cada elemento te dice nombre, dos puntos, valor.
00:20:22
que es lo que estamos sacando
00:20:25
porque aquí con la función pop
00:20:27
lo que hacemos es eliminar la edad
00:20:30
entonces aquí estamos eliminando la edad
00:20:33
si por ejemplo imprimimos
00:20:37
persona aquí
00:20:39
lo que vamos a obtener es
00:20:40
este mismo
00:20:45
nombre
00:20:48
este mismo diccionario con nombre edad ciudad
00:20:49
pero le hemos sustraído edad
00:20:54
Porque hemos utilizado el pop. Y veis aquí que está nombre y ciudad. Sin embargo, ahora con el update lo que hacemos es modificar los datos. Aquí ya estamos añadiendo edad y además añadimos una clave de valor que es nacionalidad española.
00:20:57
Y aquí ya veis que sí que ya se añade
00:21:14
¿Vale? Entonces
00:21:17
Pues con esto también se pueden hacer
00:21:19
Infinidad de cosas
00:21:21
Y ya estaría
00:21:22
¿Vale? Son las colecciones que
00:21:24
Como sabéis ya hemos
00:21:27
Utilizado algunas en ejercicios
00:21:29
Anteriores porque son muy útiles
00:21:31
Y muy comunes ¿Verdad?
00:21:33
Y en este tema los vamos a ver un poco con más detenimiento
00:21:35
Así que nada
00:21:38
Ánimo con la tarea
00:21:39
Y nos vemos en la próxima unidad
00:21:40
Adiós
00:21:43
Gracias.
00:21:44
- Materias:
- Tecnología
- Etiquetas:
- Innovación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Alberto S.
- Licencia:
- Reconocimiento - Compartir igual
- Visualizaciones:
- 5
- Fecha:
- 3 de febrero de 2026 - 22:38
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 21′ 46″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 38.71 MBytes