Comprensión simple de la comprensión de la lista de Python

En pocas palabras, la comprensión de listas proporciona una forma más conveniente de crear una lista, es decir, reemplazar las pocas líneas de código originales con una línea. Su estructura es la siguiente:

newlist = [expression for member in iterable (if conditional)]

La traducción es, para un objeto iterable iterable, sacamos un miembro de él cada vez, si cumple la condición condicional (si no hay condición, es equivalente a ser verdadero directamente), luego lo ponemos en la función de expresión para procesamiento, y agréguelo al centro de la nueva lista.

Tenga en cuenta que si se eliminan los corchetes exteriores, la comprensión esencialmente devuelve un objeto generador, no una lista:

print(type(i for i in range(1, 100)))
# <class 'generator'>

print(type([i for i in range(1, 100)]))
# <class 'list'>

Ejemplo 1

Supongamos que desea crear una matriz de enteros del 1 al 99, el método de escritura original es el siguiente:

ret = []
for i in range(1, 100):
	ret.append(i)
print(ret)

Las listas de comprensión se escriben de la siguiente manera:

ret = [i for i in range(1, 100)]
print(ret)

Ejemplo 2

Supongamos que desea crear una matriz de números impares del 1 al 99, el método de escritura original es el siguiente:

ret = []
for i in range(1, 100):
	if i % 2 == 1:
		ret.append(i)
print(ret)

Las listas de comprensión se escriben de la siguiente manera:

ret = [i for i in range(1, 100) if i % 2 == 1]
print(ret)

Ejemplo 3

Supongamos que desea crear una matriz que contenga números cuadrados del 1 al 9, la forma original de escribir es la siguiente:

ret = []
for i in range(1, 10):
	ret.append(i ** 2)
print(ret)

Las listas de comprensión se escriben de la siguiente manera:

ret = [i ** 2 for i in range(1, 10)]
print(ret)

Ejemplo 4

Suponiendo que el elemento K se elimine de la matriz, una forma original de escribir es la siguiente:

lst = [1, 2, 3, 4, 5, 3, 6]
K = 3

ret = []
for x in lst:
    if x != K:
        ret.append(x)
print(ret)

Las listas de comprensión se escriben de la siguiente manera:

lst = [1, 2, 3, 4, 5, 3, 6]
K = 3

ret = [x for x in lst if x != K]
print(ret)

Se puede ver desde aquí que la lista de comprensión es equivalente al reemplazo de la función de filtro (e incluso puede ser más concisa). La forma de usar el filtro es la siguiente:

lst = [1, 2, 3, 4, 5, 3, 6]
K = 3

ret = list(filter(lambda x: x != K, lst))
print(ret)

Supongo que te gusta

Origin blog.csdn.net/qq_40714949/article/details/131371414
Recomendado
Clasificación