0% encontró este documento útil (0 votos)
0 vistas8 páginas

Listas Python

Este documento es una guía completa sobre listas en Python, cubriendo desde su creación y manipulación hasta métodos avanzados y módulos relacionados. Se abordan conceptos como indexación, slicing, métodos que modifican y no modifican listas, y se incluye una tabla de complejidad. También se discuten alternativas a las listas en situaciones específicas y se proporciona un cheat sheet con los métodos más utilizados.

Cargado por

romarioanchaise
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas8 páginas

Listas Python

Este documento es una guía completa sobre listas en Python, cubriendo desde su creación y manipulación hasta métodos avanzados y módulos relacionados. Se abordan conceptos como indexación, slicing, métodos que modifican y no modifican listas, y se incluye una tabla de complejidad. También se discuten alternativas a las listas en situaciones específicas y se proporciona un cheat sheet con los métodos más utilizados.

Cargado por

romarioanchaise
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Listas en Python

Guía completa de referencia

[1, 2, 3].append(4)
>>> [1, 2, 3, 4]

Preparado por Romario


Universidad Continental — Arequipa

Agosto 2026
Listas en Python Ing. de Sistemas

Contents

1 Introducción 2

2 Creación de listas 2

3 Indexación y slicing 2

4 Métodos que modifican la lista (in-place) 3

5 Métodos que NO modifican la lista 3

6 El parámetro key en sort() 3

7 List comprehensions 3

8 Funciones built-in con listas 4

9 Operadores sobre listas 4

10 Copias: superficial vs profunda 4

11 Módulos relacionados 5
11.1itertools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
11.2bisect — listas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
11.3heapq — colas de prioridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
[Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

12 Métodos ”dunder” detrás de las listas 6

13 Tabla resumen de complejidad 6

14 Cuándo NO usar listas 6

15 Cheat sheet final 6

1
Listas en Python Ing. de Sistemas

1 Introducción
Las listas (list) son la estructura de datos más versátil en Python: son mutables, orde-
nadas y permiten elementos de tipos heterogéneos. Esta guía cubre desde lo básico
hasta las herramientas menos conocidas del ecosistema estándar.

1 mi_lista = [1, "dos", 3.0, [4, 5], True]


2 print(type(mi_lista)) # <class 'list'>

Nota: A diferencia de las tuplas, las listas se pueden modificar después de creadas
(mutabilidad). Esto tiene implicaciones de rendimiento y de manejo de memoria que
se explican más adelante.

2 Creación de listas

1 vacia = []
2 vacia2 = list()
3 numeros = [1, 2, 3, 4, 5]
4 desde_rango = list(range(10))
5 desde_string = list("hola") # ['h','o','l','a']
6 repetida = [0] ∗ 5 # [0,0,0,0,0]
7 anidada = [[1,2], [3,4], [5,6]]
8 por_comprension = [x∗∗2 for x in range(5)]

Cuidado con [[0]*3]*3 para crear matrices: las tres sublistas son la misma refer-
encia en memoria. Usa [[0]*3 for _ in range(3)] en su lugar.

3 Indexación y slicing

1 lista = [10, 20, 30, 40, 50]


2

3 lista[0] # 10 (primer elemento)


4 lista[−1] # 50 (ultimo elemento)
5 lista[1:3] # [20, 30]
6 lista[:3] # [10, 20, 30]
7 lista[2:] # [30, 40, 50]
8 lista[::2] # [10, 30, 50] (paso 2)
9 lista[::−1] # [50, 40, 30, 20, 10] (invertida)
10 lista[1:4:2] # [20, 40]

2
Listas en Python Ing. de Sistemas

4 Métodos que modifican la lista (in-place)


Método Descripción
append(x) Agrega x al final
extend(iterable) Agrega todos los elementos de un iterable
insert(i, x) Inserta x en la posición i
remove(x) Elimina la primera coincidencia de x
pop([i]) Elimina y devuelve el elemento en i (o el último)
clear() Vacía la lista
sort(key=,reverse=) Ordena in-place
reverse() Invierte el orden in-place

1 lista = [3, 1, 4, 1, 5]
2 [Link](9) # [3,1,4,1,5,9]
3 [Link]() # [1,1,3,4,5,9]
4 [Link](reverse=True) # [9,5,4,3,1,1]
5 [Link]() # invierte el orden actual

5 Métodos que NO modifican la lista

1 lista = [3, 1, 4, 1, 5]
2
3 [Link](4) # 2 (posicion de la primera coincidencia)
4 [Link](1) # 2 (cuantas veces aparece 1)
5 [Link]() # copia superficial (shallow copy)
6 sorted(lista) # nueva lista ordenada, no muta la original
7 list(reversed(lista)) # iterador invertido

6 El parámetro key en sort()

1 personas = [("Ana", 25), ("Luis", 20), ("Eva", 30)]


2
3 [Link](key=lambda p: p[1]) # ordena por edad
4 [Link](key=lambda p: p[0]) # ordena por nombre
5
6 palabras = ["banana", "kiwi", "sandia"]
7 [Link](key=len) # ordena por longitud

También puedes usar [Link] para ordenar por múltiples criterios de


forma más eficiente que un lambda.

1 from operator import itemgetter


2 [Link](key=itemgetter(1, 0)) # por edad y luego nombre

7 List comprehensions

3
Listas en Python Ing. de Sistemas

1 cuadrados = [x∗∗2 for x in range(10)]


2 pares = [x for x in range(20) if x % 2 == 0]
3 mixto = [x if x > 0 else 0 for x in [−2, 5, −8, 3]]
4 matriz_plana = [x for fila in matriz for x in fila]
5 combinaciones = [(x, y) for x in range(3) for y in range(3) if x != y]

8 Funciones built-in con listas

1 len(lista)
2 sum(lista)
3 max(lista)
4 min(lista)
5 any(lista)
6 all(lista)
7 enumerate(lista) # (indice, valor)
8 zip(lista1, lista2) # combina en tuplas
9 map(func, lista)
10 filter(func, lista)

1 for i, valor in enumerate(["a", "b", "c"]):


2 print(i, valor)
3

4 nombres = ["Ana", "Luis"]


5 edades = [25, 20]
6 for nombre, edad in zip(nombres, edades):
7 print(nombre, edad)

9 Operadores sobre listas

1 [1, 2] + [3, 4] # [1, 2, 3, 4] concatenacion


2 [1, 2] ∗ 3 # [1, 2, 1, 2, 1, 2] repeticion
3 3 in [1, 2, 3] # True pertenencia
4 [1, 2] == [1, 2] # True comparacion por contenido
5 del lista[0] # elimina por indice
6 del lista[1:3] # elimina un slice
7 lista[1:3] = [9, 9] # reemplaza un slice

10 Copias: superficial vs profunda

Este es uno de los errores más comunes en Python. Una copia superficial (shallow)
no copia los objetos anidados; una copia profunda (deep) sí.

1 import copy
2
3 original = [[1, 2], [3, 4]]
4
5 superficial = [Link]() # o list(original) o original[:]
6 profunda = [Link](original)
7

4
Listas en Python Ing. de Sistemas

8 superficial[0][0] = 99
9 print(original) # [[99, 2], [3, 4]] <− se modifico!
10
11 profunda[1][0] = 77
12 print(original) # [[99, 2], [3, 4]] <− no se modifico

11 Módulos relacionados
11.1 itertools

1 from itertools import (


2 chain, combinations, permutations, product,
3 groupby, accumulate, islice, cycle, repeat,
4 dropwhile, takewhile, compress, pairwise
5 )
6
7 list(permutations([1,2,3], 2))
8 # [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)]
9
10 list(combinations([1,2,3], 2))
11 # [(1,2),(1,3),(2,3)]
12
13 list(chain([1,2], [3,4]))
14 # [1,2,3,4]
15
16 list(accumulate([1,2,3,4]))
17 # [1,3,6,10] (suma acumulada)

11.2 bisect — listas ordenadas

1 import bisect
2
3 lista = [1, 3, 4, 7, 9]
4 [Link](lista, 5) # inserta manteniendo el orden
5 pos = bisect.bisect_left(lista, 4) # busqueda binaria

11.3 heapq — colas de prioridad

1 import heapq
2
3 lista = [5, 1, 8, 3]
4 [Link](lista) # convierte en heap in−place
5 [Link](lista, 2)
6 menor = [Link](lista) # extrae el minimo

11.4 [Link]

1 from collections import deque


2
3 cola = deque([1, 2, 3])
4 [Link](0) # O(1) al inicio (una lista normal es O(n))

5
Listas en Python Ing. de Sistemas

5 [Link]() # O(1)

Usa deque cuando necesites insertar o eliminar frecuentemente por el inicio de la


secuencia. Las listas normales son ineficientes para eso.

12 Métodos ”dunder” detrás de las listas

1 lista.__len__() # lo que usa len(lista)


2 lista.__contains__(3) # lo que usa "3 in lista"
3 lista.__getitem__(0) # lo que usa lista[0]
4 lista.__add__([4,5]) # lo que usa lista + [4,5]
5 lista.__iter__() # lo que usa "for x in lista"

13 Tabla resumen de complejidad


Operación Complejidad
append(x) O(1) amortizado
pop() (al final) O(1)
pop(0) (al inicio) O(n)
insert(0, x) O(n)
x in lista O(n)
lista[i] O(1)
len(lista) O(1)
sort() O(n log n)

14 Cuándo NO usar listas


• Si necesitas insertar/eliminar frecuentemente por el inicio → [Link]
• Si necesitas cómputo numérico intensivo → [Link]
• Si necesitas una cola de prioridad → heapq
• Si necesitas elementos únicos sin orden → set
• Si necesitas pares clave-valor → dict
• Si los datos no deben cambiar → tuple

15 Cheat sheet final

# Lo que se usa el 90% del tiempo:


[Link](x)
[Link]()
[Link](key=..., reverse=...)
[Link](otra)
lista[1:3] # slicing
lista[::-1] # invertir
[x for x in lista if cond] # comprehension
len(), sum(), sorted(), enumerate(), zip()

6
Listas en Python Ing. de Sistemas

Documento generado para uso académico — Ing. de Sistemas

También podría gustarte