UADE · Pensamiento Computacional
Resumen de temas para el parcial · Lic. María Ángela León
Colección de datos ordenada y mutable, definida con corchetes [].
0, mantienen el orden de inserción.| Método | Función |
|---|---|
append(x) | Agrega un elemento al final |
extend(lista) | Agrega los elementos de otra lista |
insert(i, x) | Inserta en la posición i y desplaza el resto |
pop([i]) | Elimina el último elemento o el de índice i |
remove(x) | Elimina la primera aparición de x |
del lista[i] / clear() | Elimina por posición / vacía la lista |
index(x) / count(x) | Posición / cantidad de apariciones |
len(lista) | Longitud |
sort(reverse=False) | Ordena in-situ (numérica o alfabéticamente) |
x in lista, concatenación lista + otra, rebanada lista[2:5] (siempre devuelve una lista).Bloque de código reutilizable que realiza una tarea específica.
def nombre_funcion(parametros):
instrucciones
return valor
area(base=5)).Colección ordenada e inmutable, definida con paréntesis ().
count() e index().list(tupla) ↔ tuple(lista).nombre, edad = datos.Colección mutable de pares clave: valor, definida con llaves {}.
persona = {"nombre": "Ana", "edad": 22}
persona["ciudad"] = "Chubut" # agregar
del persona["edad"] # eliminar
| Método | Función |
|---|---|
keys() | Devuelve las claves |
values() | Devuelve los valores |
items() | Devuelve pares (clave, valor) |
get(clave) | Obtiene un valor sin error si no existe |
pop(clave) | Elimina y devuelve el valor |
update({...}) | Actualiza / agrega datos |
clear() | Vacía el diccionario |
Admiten diccionarios anidados y listas de diccionarios.
| Aspecto | Tupla | Diccionario |
|---|---|---|
| Sintaxis | () | {} |
| Acceso | Índice | Clave |
| Mutable | No | Sí |
| Uso principal | Datos fijos | Asociación clave-valor |
Secuencia de pasos para determinar la presencia, ausencia o ubicación de un dato.
| Característica | Secuencial | Binaria |
|---|---|---|
| Datos ordenados | No necesario | Obligatorio |
| Facilidad | Muy alta | Media |
| Eficiencia | Baja | Alta |
| Complejidad | O(n) | O(log n) |
| 1.000.000 elementos | hasta 1.000.000 comp. | ≈ 20 comp. |
Organizan un conjunto de datos según un criterio (ascendente, descendente, alfabético…).
Compara pares consecutivos y los intercambia si están desordenados; los valores grandes "suben" al final.
for i in range(n):
for j in range(0, n - i - 1):
if lista[j] > lista[j + 1]:
lista[j], lista[j + 1] = lista[j + 1], lista[j]
Toma cada elemento y lo inserta en su posición correcta dentro de la parte ya ordenada (como ordenar cartas en la mano).
for i in range(1, len(lista)):
actual = lista[i]
j = i - 1
while j >= 0 and lista[j] > actual:
lista[j + 1] = lista[j]
j -= 1
lista[j + 1] = actual
Busca el menor elemento y lo coloca al inicio; repite con el resto.
for i in range(n):
menor = i
for j in range(i + 1, n):
if lista[j] < lista[menor]:
menor = j
lista[i], lista[menor] = lista[menor], lista[i]
| Algoritmo | Mejor caso | Promedio | Peor caso |
|---|---|---|---|
| Burbuja | O(n) | O(n²) | O(n²) |
| Inserción | O(n) | O(n²) | O(n²) |
| Selección | O(n²) | O(n²) | O(n²) |
Estructura lineal que almacena múltiples elementos bajo un único nombre.
notas[2].len(vector); conceptualmente homogéneos.append() en un bucle.len().Pueden contener registros (listas anidadas): alumnos = [["Juan",8],["Ana",10]].
Estructura bidimensional (filas × columnas); una lista de listas.
matriz = [
[5, 8, 3],
[7, 2, 1],
[4, 9, 6]
]
print(matriz[1][2]) # → 1 (matriz[fila][columna])
for i in range(len(matriz)):
for j in range(len(matriz[i])):
print(matriz[i][j])
matriz[i][i]. Secundaria: matriz[i][n-1-i].La estructura if __name__ == "__main__": controla el comportamiento según cómo se ejecuta el archivo.
python mi_programa.py → Python asigna __name__ = "__main__".import mi_programa → __name__ toma el nombre del archivo (módulo).def main():
print("Iniciando el sistema principal...")
if __name__ == "__main__": # el "guardián" del punto de entrada
main()