- 1. Objetos mutables vs inmutables
- 2. Accediendo a los elementos de una lista
- 3. Las posiciones de índice comienzan en 0, no en 1
- 4. Uso de valores individuales de una lista
- 5. Prueba tu mismo
- 6. Cambio, adición y eliminación de elementos
- 7. Operaciones aritméticas sobre una lista
- 8. Ahora prueba tu
- 9. Organizar una lista
- 10. Encontrar la longitud de una lista
- 11. Prueba tu mismo
- 12. Operaciones específicas del tipo
- 13. Comprobación de límites
- 14. Anidamiento
- 15. Comprensiones
- 16. Ahora prueba tu
- 17. Enlaces externos
El objeto de lista de Python es la secuencia más general proporcionada por el lenguaje. Las listas son colecciones ordenadas posicionalmente de objetos tipificados arbitrariamente, y no tienen un tamaño fijo. También son mutables, a diferencia de las cadenas, las listas se pueden modificar en su lugar. En consecuencia, proporcionan una muy flexible herramienta para representar colecciones arbitrarias: listas de archivos en una carpeta - empleados en una empresa, correos electrónicos en su bandeja de entrada, etc.
Ver esquema Markmap list_basic_markmap
1. Objetos mutables vs inmutables
Objetos mutables
- Definición: Son aquellos cuyos valores o estado pueden cambiar después de su creación sin cambiar su identidad.
- Ejemplos: Listas, diccionarios, conjuntos.
Ejemplo en código:
lista = [1, 2, 3]
lista.append(4) # La lista cambia a [1, 2, 3, 4]
Objetos inmutables
- Definición: Son aquellos cuyos valores no pueden cambiar una vez que han sido creados. Si se intenta cambiar, se crea un nuevo objeto.
- Ejemplos: Enteros, cadenas, tuplas, booleanos.
Ejemplo en código:
texto = "Hola"
texto += " Mundo" # Se crea una nueva cadena, no se modifica la original
Resumen:
- Mutables: Cambian su estado en el mismo objeto.
- Inmutables: Cualquier “cambio” crea un nuevo objeto.
2. Accediendo a los elementos de una lista
Las listas son colecciones ordenadas, por lo que puede acceder a cualquier elemento de una lista diciendo a Python la posición, o índice, del elemento deseado. Para acceder a un elemento en una lista, escriba el nombre de la lista seguido del índice del elemento entre corchetes.
Por ejemplo, saquemos la primera bicicleta de la lista bicicletas:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
Cuando pedimos un solo artículo de una lista, Python devuelve solo ese elemento sin corchetes ni comillas marcas:
trek
También puede usar los métodos de cadena en cualquier elemento en una lista. Por ejemplo, puede formatear el elemento ‘trek’ más claramente usando el método del title():
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
Este ejemplo produce el mismo resultado que el ejemplo anterior. excepto que ‘Trek’ está capitalizado.
3. Las posiciones de índice comienzan en 0, no en 1
Python considera que el primer elemento de una lista está en la posición 0, no en la posición 1. Esto es cierto para la mayoría de los lenguajes de programación.
El segundo elemento de una lista tiene un índice de 1. Usando este simple conteo sistema, puede obtener cualquier elemento que desee de una lista restando uno de su posición en la lista. Por ejemplo, para acceder al cuarto elemento de una lista, solicita el artículo en el índice 3.
Lo siguiente pregunta por las bicicletas en el índice 1 y el índice 3:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
Este código devuelve la segunda y cuarta bicicleta de la lista:
cannondale
specialized
Python tiene una sintaxis especial para acceder al último elemento de una lista. Al buscar el elemento en el índice -1, Python siempre devuelve el último elemento de la lista:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
Este código devuelve el valor ‘specialized’. Esta sintaxis es bastante útil, porque a menudo querrá acceder a los últimos elementos de una lista sin saber exactamente la longitud de la lista. Esta convención se extiende a otros índices negativos valores también. El índice - 2 devuelve el segundo elemento del final de la lista, el índice - 3 devuelve el tercer elemento desde el final, y así sucesivamente.
4. Uso de valores individuales de una lista
Puede usar valores individuales de una lista como lo haría con cualquier otra variable. Por ejemplo, puede utilizar la concatenación para crear un mensaje basado en un valor de una lista.
Intentemos sacar la primera bicicleta de la lista y redactar un mensaje utilizando ese valor.
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
Construimos una oración usando el valor en bicicletas[0] y lo almacenamos en el mensaje variable. El resultado es una oración simple sobre la primera bicicleta en la lista:
My first bicycle was a Trek.
5. Prueba tu mismo
- Nombres: Guarde los nombres de algunos de sus amigos en una lista llamada nombres. Imprime el nombre de cada persona accediendo a cada elemento de la lista, uno a la vez.
- Saludos: Comience con la lista que usó en el anterior, pero en lugar de solo imprimiendo el nombre de cada persona, imprima un mensaje para ellos. El texto de cada mensaje debe ser el mismo, pero cada mensaje debe estar personalizado con el nombre de persona.
- Su propia lista: Piense en su medio de transporte favorito, como un motocicleta o un automóvil, y haga una lista que almacene varios ejemplos. usa tu lista para imprimir una serie de afirmaciones sobre estos elementos, como “Me gustaría tener un motocicleta “Honda”“.
6. Cambio, adición y eliminación de elementos
La mayoría de las listas que cree serán dinámicas, lo que significa que creará una lista y luego agregue y elimine elementos de él a medida que su programa sigue su curso. Por ejemplo, puede crear un juego en el que un jugador tiene que disparar a los extraterrestres del cielo Puede almacenar el conjunto inicial de extraterrestres en una lista y luego eliminar un extraterrestre de la lista cada vez que uno es derribado. Cada vez que un nuevo extraterrestre aparece en la pantalla, lo agregas a la lista. Tu lista de alienígenas disminuirá y aumentan de longitud a lo largo del juego.
6.1. Modificación de elementos en una lista
La sintaxis para modificar un elemento es similar a la sintaxis para acceder un elemento en una lista. Para cambiar un elemento, utilice el nombre de la lista seguida por el índice del elemento que desea cambiar, y luego proporcione el nuevo valor que quieres que tenga ese artículo.
Por ejemplo, supongamos que tenemos una lista de motocicletas y el primer elemento en la lista es ‘honda’. ¿Cómo cambiaríamos el valor de este primer artículo?
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
El código cambia el valor del primer elemento a ‘ducati’. La salida muestra que el primer elemento de hecho ha sido cambiado, y el resto de la lista Sigue igual:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
Puede cambiar el valor de cualquier elemento de una lista, no solo del primero.
7. Operaciones aritméticas sobre una lista
Debido a que son secuencias, las listas admiten todas las operaciones de secuencia que mencionamos para los strings; la única diferencia es que los resultados suelen ser listas en lugar de cadenas. Para ejemplo, dada una lista de tres elementos:
>>> Lista = [123,'spam',1.23]
>>> len(Lista)
3
podemos indexar, segmentar, etc., al igual que con las cadenas:
>>> Lista[0]
123
>>> Lista[:-1]
[123, 'spam']
>>> Lista + [4,5,6]
[123, 'spam', 1.23, 4, 5, 6]
>>> Lista*2
[123, 'spam', 1.23, 123, 'spam', 1.23]
>>> Lista # No estamos cambiando la lista original
[123, 'spam', 1.23]
7.1. Adición de elementos a una lista
Es posible que desee agregar un nuevo elemento a una lista por muchas razones. Para ejemplo, es posible que desee hacer que aparezcan nuevos extraterrestres en un juego, agregar nuevos datos a una visualización, o agregar nuevos usuarios registrados a un sitio web que ha construido. Python proporciona varias formas de agregar nuevos datos a las listas existentes.
7.1.1. Agregar elementos al final de una lista
La forma más sencilla de agregar un nuevo elemento a una lista es agregar el elemento a la lista con append. Cuando agrega un elemento a una lista, el nuevo elemento se agrega al final de la lista. Usando la misma lista que teníamos en el ejemplo anterior, agregaremos el nuevo elemento ‘ducati’ al final de la lista:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
El método append() en u agrega ‘ducati’ al final de la lista sin afectar a cualquiera de los otros elementos de la lista:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
El método append() facilita la creación dinámica de listas. Por ejemplo, puede comenzar con una lista vacía y luego agregar elementos a la lista usando una serie de sentencias append(). Usando una lista vacía, agreguemos el elemento ‘honda’, ‘yamaha’ y ‘suzuki’ a la lista:
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
Crear listas de esta manera es muy común, porque a menudo no sabrá los datos que sus usuarios quieren almacenar en un programa hasta después de que el programa esté en ejecución. Para que sus usuarios tengan el control, comience definiendo una lista vacía que mantendrá los valores de los usuarios. Luego agregue cada nuevo valor proporcionado a la lista acabas de crear.
7.1.2. Insertar elementos en una lista
Puede agregar un nuevo elemento en cualquier posición de su lista usando el método insert(). Esto se hace especificando el índice del nuevo elemento y el valor del nuevo artículo.
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
En este ejemplo, el código inserta el valor ‘ducati’ al principio de la lista. El método insert() abre un espacio en la posición 0 y almacena el valor ‘ducati’ en ese lugar. Esta operación cambia cualquier otro valor en la lista una posición a la derecha:
['ducati', 'honda', 'yamaha', 'suzuki']
7.1.3. Eliminación de elementos de una lista
A menudo, querrá eliminar un elemento o un conjunto de elementos de una lista. Por ejemplo, cuando un jugador derriba a un alienígena desde el cielo, lo más probable es que probablemente quiera eliminarlo de la lista de alienígenas activos. O cuando un usuario decide cancelar su cuenta en una aplicación web que usted creó, desea eliminar ese usuario de la lista de usuarios activos. Puede eliminar un artículo según su posición en la lista o según su valor.
Eliminación de un elemento mediante la instrucción del
Si conoce la posición del elemento que desea eliminar de una lista, puede utilizar la instrucción del.
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
El código usa del para eliminar el primer elemento, ‘honda’, de la lista de motocicletas:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
Eliminación de un elemento mediante el método pop()
A veces querrás usar el valor de un artículo después de eliminarlo de un lista. Por ejemplo, es posible que desee obtener la posición x e y de un extraterrestre que fue derribado, así que puedes dibujar una explosión en esa posición. en una web aplicación, es posible que desee eliminar un usuario de una lista de miembros activos y luego agregue ese usuario a una lista de miembros inactivos.
El método pop() elimina el último elemento de una lista, pero te permite trabajar con ese artículo después de quitarlo. El término pop proviene de pensar en un lista como una pila de elementos y sacando un elemento de la parte superior de la pila. En esta analogía, la parte superior de una pila corresponde al final de una lista.
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
Hacer pop de elementos en cualquier posición en una lista
De hecho, puede usar pop() para eliminar un elemento en una lista en cualquier posición incluyendo el índice del elemento que desea eliminar entre paréntesis.
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print('The first motorcycle I owned was a ' + first_owned.title() + '.')
Eliminación de un artículo por valor
A veces no sabrá la posición del valor que desea eliminar de una lista. Si solo conoce el valor del artículo que desea eliminar, puede
puede usar el método remove().
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
También puede usar el método remove() para trabajar con un valor que se está eliminado de una lista. Quitemos el valor ‘ducati’ e imprimamos un motivo para eliminándolo de la lista:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA " + too_expensive.title() + " is too expensive for me.")
8. Ahora prueba tu
- Lista invitadxs: Si pudieras invitar a alguien, vivo o fallecido, a cenar, ¿a quien invitarías? Haz una lista que incluya al menos tres personas a las que te gustaría invitar a cenar. Luego use su lista para imprimir un mensaje a cada persona, invitándolo a cenar.
- Cambiando la lista de invitadxs: Acabas de escuchar que uno de tus invitados no puede asistir cena, por lo que debe enviar un nuevo conjunto de invitaciones. tendrás que pensar en otra persona a quien invitar.
- Comience con su programa del ejercicio anterior. Agregue una declaración de impresión en el final de su programa indicando el nombre del invitado que no puede asistir.
- Modifique su lista, reemplazando el nombre del invitado con el que no puede asistir el nombre de la nueva persona que estás invitando.
- Imprima un segundo conjunto de mensajes de invitación, uno para cada persona que todavía está en tu lista
- Más invitadxs: Acabas de encontrar una mesa de comedor más grande, así que ahora hay más espacio disponible. Piense en tres invitados más para invitar a cenar.
- Añadir una impresión final de su programa informando a las personas que encontró un mesa de comedor más grande.
- Use insert() para agregar un nuevo invitado al comienzo de su lista.
- Use insert() para agregar un nuevo invitado al medio de su lista.
- Use append() para agregar un nuevo invitado al final de su lista.
- Imprima un nuevo conjunto de mensajes de invitación, uno para cada persona de su lista.
- Lista de invitados cada vez más pequeña: acaba de enterarse de que su nueva mesa no llegue a tiempo para la cena, y tiene espacio para solo dos invitados.
- Agregue una nueva línea que imprima un mensaje que dice que solo puede invitar a dos personas a cenar.
- Use
pop()para eliminar invitados de su lista uno a la vez hasta que solo dos los nombres permanecen en su lista. Cada vez que saque un nombre de su lista, imprima un mensaje para esa persona haciéndole saber que lamentas no poder invitarlo a cenar. - Imprima un mensaje para cada una de las dos personas que todavía están en su lista, dejándoles saben que todavía están invitados.
- Use
delpara eliminar los dos últimos nombres de su lista, de modo que tenga un espacio vacío lista. Imprima su lista para asegurarse de que realmente tiene una lista vacía al final de tu programa.
9. Organizar una lista
A menudo, sus listas se crearán en un orden impredecible, porque no puede controlar siempre el orden en que tus usuarios proporcionan sus datos. A pesar de que esto es inevitable en la mayoría de las circunstancias, con frecuencia querrá presentar su información en un orden particular. A veces querrás conservar el orden original de su lista, y otras veces querrá cambiar el orden original. orden final. Python proporciona varias formas diferentes de organizar sus listas, dependiendo de la situación.
9.1. Ordenar una lista de forma permanente con el método sort()
El método sort() de Python hace que sea relativamente fácil ordenar una lista. imagina que tiene una lista de autos y desea cambiar el orden de la lista para almacenarlos alfabéticamente. Para simplificar la tarea, supongamos que todos los valores en la lista está en minúsculas.
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars.sort()) # OJO el método no retorna nada, ordena internamente, este print imprime "None"
print(cars)
El método sort(), que se muestra, cambia el orden de la lista de forma permanentemente. Los autos ahora están en orden alfabético, y nunca podremos volver al orden original:
['audi', 'bmw', 'subaru', 'toyota']
También puede ordenar esta lista en orden alfabético inverso pasando el argumento reverse=True al método sort(). El siguiente ejemplo ordena la lista de coches en orden alfabético inverso:
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
9.2. Ordenar una lista temporalmente con la función sorted()
Para mantener el orden original de una lista pero presentarla ordenada, debe puede usar la función sorted(). La función sorted() le permite mostrar su lista en un orden particular pero no afecta el orden real de la lista.
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
9.3. Imprimir una lista en orden inverso
Para invertir el orden original de una lista, puede utilizar el método reverse(). Si originalmente almacenáramos la lista de autos en orden cronológico según cuando los adquirimos, podíamos reorganizar fácilmente la lista en cronología inversa. orden lógico:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
Tenga en cuenta que reverse() no se ordena alfabéticamente hacia atrás; simplemente invierte el orden de la lista.
El método reverse() cambia el orden de una lista de forma permanente, pero puede volver al orden original en cualquier momento aplicando reverse() al mismo lista por segunda vez.
10. Encontrar la longitud de una lista
Puede encontrar rápidamente la longitud de una lista usando la función len(). La lista en este ejemplo tiene cuatro elementos, por lo que su longitud es 4 :
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> len(cars)
4
Ojo:
products = [
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]
]
print(len(products)) # 4!!!!!
11. Prueba tu mismo
Ver el mundo: piensa en al menos cinco lugares del mundo que te gustaría visitar.
- Almacene las ubicaciones en una lista. Asegúrese de que la lista no esté en orden alfabético.
- Imprime tu lista en su orden original. No se preocupe por imprimir la lista ordenadamente, simplemente imprímalo como una lista de Python sin procesar
- Use
sorted()para imprimir su lista en orden alfabético sin modificar el lista real. - Muestre que su lista todavía está en su orden original imprimiendo.
- Use
sorted()para imprimir su lista en orden alfabético inverso sin cambios. - Muestre que su lista todavía está en su orden original imprimiéndola de nuevo.
- Usa reverse() para cambiar el orden de tu lista. Imprima la lista para mostrar que su el orden ha cambiado.
- Use reverse() para cambiar el orden de su lista nuevamente. Imprima la lista para mostrar ha vuelto a su orden original.
- Use sort() para cambiar su lista para que se almacene en orden alfabético. Imprime el lista para mostrar que su orden ha sido cambiado.
- Use sort() para cambiar su lista para que se almacene en orden alfabético inverso. Imprima la lista para mostrar que su orden ha cambiado.
12. Operaciones específicas del tipo
Las listas de Python pueden recordar a los arrays en otros lenguajes, pero tienden a ser más potentes. Por un lado, no tienen una restricción de tipo fijo: la lista que acabamos de ver, por ejemplo, contiene tres objetos de tipos completamente diferentes (un entero, una cadena, y un número de coma flotante). Además, las listas no tienen un tamaño fijo. Es decir, pueden crecer. y reducir a petición, en respuesta a operaciones específicas de la lista:
>>> Lista.append('New element')
>>> Lista
[123, 'spam', 1.23, 'New element']
>>> Lista.pop()
'New element'
>>> Lista
[123, 'spam', 1.23]
Aquí, el método de agregar append a la lista expande el tamaño de la lista e inserta un elemento al final; El método pop (o una instrucción del equivalente) elimina un elemento en un desplazamiento dado, haciendo que la lista se reduzca. Otros métodos de lista insertan un elemento en una posición arbitraria (insert), eliminar un elemento determinado por valor (remove), agregar varios elementos al final (extend), etc. Debido a que las listas son mutables, la mayoría de los métodos de lista también cambian la lista objeto en su lugar, en lugar de crear uno nuevo:
>>> Nums = [4,1,7]
>>> Nums.sort()
>>> Nums
[1, 4, 7]
>>> Nums.reverse()
>>> Nums
[7, 4, 1]
13. Comprobación de límites
Aunque las listas no tienen un tamaño fijo, Python aún no nos permite hacer referencia a elementos que no están presentes.
>>> L
[123, 'spam', 'NI']
>>> L[99]
...error text omitted...
IndexError: list index out of range
>>> L[99] = 1
...error text omitted...
IndexError: list assignment index out of range
14. Anidamiento
Una buena característica de los tipos de datos básicos de Python es que admiten el anidamiento arbitrario. podemos anidarlos en cualquier combinación, y tan profundamente como queramos. Por ejemplo, podemos tener una lista que contiene un diccionario, que contiene otra lista, y así sucesivamente. uno inmediato aplicación de esta función es representar matrices, o “arreglos multidimensionales” en Pitón.
>>> M = [[1, 2, 3],
... [4, 5, 6],
... [7, 8, 9]]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
El efecto es representar una matriz de números de 3 × 3. Se puede acceder a dicha estructura de varias maneras:
>>> M[1] # Get row 2
[4, 5, 6]
>>> M[1][2] # Get row 2, then get item 3 within the row
6
15. Comprensiones
Además de las operaciones de secuencia y los métodos del objeto lista, Python incluye operación más avanzada conocida como expresión de comprensión de lista (list comprehension expression), que resulta ser una poderosa manera de procesar estructuras como nuestra matriz. Supongamos, por ejemplo, que necesitamos extraer la segunda columna de nuestra matriz de muestra. Es fácil tomar filas mediante una simple indexación porque la matriz se almacena por filas, pero es casi tan fácil obtener una columna con una lista comprensión:
>>> col2 = [row[1] for row in M] # Collect the items in column 2
>>> col2
[2, 5, 8]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]# The matrix is unchanged
16. Ahora prueba tu
Prueba estos programas breves para obtener experiencia de primera mano con las listas de Python. Es posible que desees crear una carpeta nueva para guardar los ejercicios de cada capítulo y mantenerlos organizados.
- nombres.py: almacene los nombres de algunos de sus amigos en una lista llamada nombres . Impresión el nombre de cada persona accediendo a cada elemento de la lista, uno a la vez.
- saludos.py: Comience con la lista que usó en el ejercicio previo, pero en lugar de solo imprimiendo el nombre de cada persona, imprima un mensaje para ellos. El texto de cada mensaje El mensaje debe ser el mismo, pero cada mensaje debe estar personalizado con el nombre de persona.
- propia_lista.py : Piense en su medio de transporte favorito, como un motocicleta o un automóvil, y haga una lista que almacene varios ejemplos. usa tu lista para imprimir una serie de afirmaciones sobre estos elementos, como “Me gustaría tener un Motocicleta Honda.”