Introducción a la programación en Python (008) -Operaciones de listas (3): comprensión de listas

Introducción a la programación en Python (008) -Operaciones de listas (3): comprensión de listas

Utilice listas por comprensión para generar rápidamente una lista. O generar una lista que satisfaga necesidades específicas basándose en una lista determinada. Una lista por comprensión está entre corchetes y consta de una expresión, uno o más bucles for y una condición opcional que filtra la lista resultante.

El formato de sintaxis de comprensión de listas es el siguiente:

new_list = [expression(item) for item in iterable if condition]

相当于如下语句:
new_list = []
for item in iterable:
    if condition:
        new_list.append(expression(item))

ilustrar:

(1) Expressinon: Expresión, utilizada para calcular elementos de una lista.

(2) elemento: variable de bucle.

(3) iterable: objeto iterable.

(4) condición: condición.

1. Ejemplos de aplicaciones básicas

1. Genere una lista que consta del 1 al 10

num1 = [x for x in range(1,11)]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

El ejemplo anterior significa: asignar dos áreas consecutivas de acuerdo con la longitud del tipo int, convertirlas en punteros de tipo int y asignar la primera dirección a la variable de puntero ps.

2. Genera una lista de números pares entre 2 y 20.

num1 = [2*x for x in range(1,11)]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

3. Genere una lista de números impares entre 1 y 19.

num1 = [2*x-1 for x in range(1,11)]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

4. Generar listas anidadas

num1 = [[x,x**2,x**3] for x in range(1,11)]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[[1, 1, 1], [2, 4, 8], [3, 9, 27], [4, 16, 64], [5, 25, 125], [6, 36, 216], [7, 49, 343], [8, 64, 512], [9, 81, 729], [10, 100, 1000]]

2. Agregar condiciones

1. Genera una lista de 10 números pares.

num1 = [x for x in range(1,11) if x%2==0]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 4, 6, 8, 10]

2. Genera una lista de 10 números impares.

num1 = [x for x in range(1,11) if x%2==1]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[1, 3, 5, 7, 9]

3. Genera una lista de números enteros entre 1-3 y 7-10.

num1 = [x for x in range(1,11) if x>=7 or x<=3]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[1, 2, 3, 7, 8, 9, 10]

4. Si el valor de x está entre 2 y 5, la lista por comprensión devuelve 2*x, de lo contrario devuelve x**2

num1 = [2*x if x>=2 and x<=5 else x**2 for x in range(1,11)]
print(num1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[1, 4, 6, 8, 10, 36, 49, 64, 81, 100]

3. Utilice la función zip() para combinar varias listas.

La lista por comprensión utilizada con la función zip devuelve una lista de tuplas, donde la enésima tupla contiene el enésimo elemento de cada lista.

Ejemplo 1:

cities = ['Rome', 'Warsaw', 'London']
countries = ['Italy', 'Poland', 'United Kingdom']
list1 = [(city, country) for city, country in zip(cities, countries)]
print(list1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[('Rome', 'Italy'), ('Warsaw', 'Poland'), ('London', 'United Kingdom')]

Ejemplo 2:

a = [2, 3, 4, 5]
b = [12, 13, 14, 15]
list1 = [x+y for x,y in zip(a,b)]
print(list1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[14, 16, 18, 20]

Ejemplo 3:

a = [2, 3, 4, 5]
b = [12, 13, 14, 15]
c = [22, 23, 24, 25]
list1 = [2*x+3*y+z for x,y,z in zip(a,b,c)]
print(list1)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[62, 68, 74, 80]

4. Comprensiones de listas anidadas

list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
list2 = [[x*2 for x in row] for row in list1]
print(list2)

运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[[2, 4, 6], [8, 10, 12], [14, 16, 18]]

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/132123140
Recomendado
Clasificación