|
| 1 | + |
| 2 | +''' Las estructuras de datos son una forma de organizar y |
| 3 | +almacenar datos de manera que podamos acceder y modificarlos |
| 4 | +de manera eficiente. |
| 5 | +Algunos ejemplos comunes de estructuras de datos son |
| 6 | +listas, pilas, colas, conjuntos y diccionarios. |
| 7 | +''' |
| 8 | + |
| 9 | +''' Listas (list) ''' |
| 10 | +''' |
| 11 | +Colecciones ordenadas y mutables (Pueden cambiar sus elementos) |
| 12 | +''' |
| 13 | + |
| 14 | +list = [1, 2, 3, 4, 5] # Pueden ser de tipo númerico, mixto ó vacía |
| 15 | +print(list[0]) # Accede al primer elemento |
| 16 | + |
| 17 | +# Modificar una lista |
| 18 | +list.append(6) # Agrega un elemento al final |
| 19 | +list[1] = 20 # Cambia el elemento 1 por el número 20 |
| 20 | +list.insert(3, 6) # Agrega un elemento en un indice específico |
| 21 | +print(list) |
| 22 | + |
| 23 | +# Elimina elementos |
| 24 | +list.remove(5) # Elimina el primer elemento que coincida |
| 25 | +list.pop (1) # Elimina un elemento por índice (o el último si no se especifica) |
| 26 | +del list[0] # Elimina un elemento o un rango de la lista |
| 27 | +print(list) |
| 28 | + |
| 29 | +# Cortar listas (Slicing) |
| 30 | +list_1 = [10, 20, 30, 40, 50] |
| 31 | +print(list_1[1:4]) # [20, 30, 40] |
| 32 | +print(list_1[:3]) # [10, 20, 30] |
| 33 | +print(list_1[2:1]) # [30, 40, 50] |
| 34 | +print(list_1[::-1]) # [50, 40, 30, 20, 20] # lista invertida |
| 35 | + |
| 36 | +# Operaciones comunes |
| 37 | +print(len(list_1)) # Número de elementos |
| 38 | + |
| 39 | +list_2 = [1, 2] |
| 40 | +list_3 = [3, 4] |
| 41 | +print(list_2 + list_3) # Concatencación |
| 42 | + |
| 43 | +print([0] * 5) # Repetición |
| 44 | + |
| 45 | +numbers = [10, 20, 30] |
| 46 | +print(20 in numbers) # Busqueda |
| 47 | +print(numbers.index(20)) |
| 48 | + |
| 49 | +# Métodos utiles de listas |
| 50 | +numeros = [4, 2, 3, 1] |
| 51 | +numeros.sort() # Ordenar en orden ascendente |
| 52 | +print(numeros) # [1, 2, 3, 4] |
| 53 | +numeros.reverse() # Invertir el orden la lista |
| 54 | +print(numeros) # [4, 3, 2, 1] |
| 55 | +print(numeros.count(2)) # 1 # Contar las apariciones de un elemento |
| 56 | +copia = numeros.copy() # Crear una copia de la lista |
| 57 | +print(copia) # [4, 3, 2, 1] |
| 58 | + |
| 59 | +''' Tuplas (tuple)''' |
| 60 | +''' |
| 61 | +Son colecciones ordenadas pero inmutables |
| 62 | +(no pueden cambiar sus elementos después de crearlas) |
| 63 | +''' |
| 64 | + |
| 65 | +my_tupla = (1, 2, 3, 4, 5) |
| 66 | +print(my_tupla[1]) |
| 67 | + |
| 68 | +# Crear una tupla |
| 69 | +mi_tupla = (1, 2, 3, 4, 5) |
| 70 | +otra_tupla = "a", "b", "c" # También válido |
| 71 | +tupla_vacia = () |
| 72 | +una_tupla = (42,) # Tupla de un solo elemento, con una coma al final |
| 73 | + |
| 74 | +# Acceder a los elementos |
| 75 | +mi_tupla = (10, 20, 30, 40, 50) |
| 76 | +print(mi_tupla[0]) # 10 |
| 77 | +print(mi_tupla[-1]) # 50 |
| 78 | + |
| 79 | + |
| 80 | +# Inmutabilidad. |
| 81 | +# No puedes modificar una tupla después de crearla. Esto significa que los siguientes intentos darán error |
| 82 | +mi_tupla = (1, 2, 3) |
| 83 | +# mi_tupla[1] = 10 # Esto da error |
| 84 | +# mi_tupla.append(4) # Esto también da error |
| 85 | +# Sin embargo, si la tupla contiene elementos mutables como listas, puedes modificar esos elementos internos. |
| 86 | +tupla_con_lista = (1, [2, 3], 4) |
| 87 | +tupla_con_lista[1][0] = 99 |
| 88 | +print(tupla_con_lista) # (1, [99, 3], 4) |
| 89 | + |
| 90 | +# Unión de tuplas |
| 91 | +t1 = (1, 2, 3) |
| 92 | +t2 = (4, 5, 6) |
| 93 | +print(t1 + t2) # (1, 2, 3, 4, 5, 6) |
| 94 | + |
| 95 | +# Repetición de tuplas |
| 96 | +t = (1, 2) |
| 97 | +print(t * 3) # (1, 2, 1, 2, 1, 2) |
| 98 | + |
| 99 | +# Verificar si un elemento está en una tupla |
| 100 | +t = (10, 20, 30) |
| 101 | +print(20 in t) # True |
| 102 | +print(50 in t) # False |
| 103 | + |
| 104 | +# Metodos utiles |
| 105 | +t = (1, 2, 3, 2, 4, 2) |
| 106 | +print(t.count(2)) # 3 (el 2 aparece tres veces) |
| 107 | +print(t.index(3)) # 2 (el índice del primer 3) |
| 108 | + |
| 109 | +# Desempaquetado de tuplas |
| 110 | +# Puedes "desempaquetar" los elementos de una tupla directamente en variables. |
| 111 | + |
| 112 | +t = (1, 2, 3) |
| 113 | +a, b, c = t |
| 114 | +print(a, b, c) # 1 2 3 |
| 115 | + |
| 116 | +# También puedes usar el operador * para desempacar el resto de los elementos: |
| 117 | +t = (1, 2, 3, 4, 5) |
| 118 | +a, *b, c = t |
| 119 | +print(a) # 1 |
| 120 | +print(b) # [2, 3, 4] |
| 121 | +print(c) # 5 |
| 122 | + |
| 123 | +''' Conjuntos (set)''' |
| 124 | + |
| 125 | +mi_conjunto = {1, 2, 3, 3, 4} |
| 126 | +print(mi_conjunto) # {1, 2, 3, 4} |
| 127 | +mi_conjunto.add(5) # Agregar un elemento |
| 128 | +mi_conjunto.remove(2) # Eliminar un elemento |
| 129 | + |
| 130 | +''' Diccionarios (dict)''' |
| 131 | + |
| 132 | +mi_diccionario = {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"} |
| 133 | +print(mi_diccionario["nombre"]) # Acceder al valor asociado a una clave |
| 134 | +mi_diccionario["edad"] = 26 # Modificar un valor |
| 135 | +mi_diccionario["pais"] = "España" # Agregar un nuevo par clave-valor |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | + |
| 140 | + |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | + |
0 commit comments