Este artículo le permite comprender a fondo [función de filtro en Python]

Todo es un proceso desde el cambio cuantitativo hasta el cambio cualitativo, y aprender Python no es una excepción. Solo conociendo bien las funciones comunes en un idioma, podemos ser útiles en el proceso de tratar problemas y encontrar rápidamente la solución óptima.
  
Este artículo explorará contigo la función de filtro en Python, para que puedas comprender el principio de esta función en el menor tiempo posible. También puede utilizar el tiempo fragmentado para consolidar esta función para que sea más eficiente en el proceso de procesamiento.
  
inserte la descripción de la imagen aquí
  
  

1. Definición de función de filtro

  
La función de filtro es una función integrada de uso común en Python, que se puede usar directamente sin cargar una biblioteca. Se utiliza principalmente para filtrar elementos no calificados en el iterador de acuerdo con condiciones específicas y devuelve un objeto de filtro o iterador para un cálculo diferido. Debe convertirse con la función de lista para obtener una nueva lista de elementos que cumplan las condiciones.
  
Su sintaxis de llamada básica es la siguiente:

filter(function or None, iterable)

función: función, la función es juzgar si cada elemento en el iterable cumple una condición específica.
  
Ninguno: no llame a ninguna función, solo juzgue verdadero o falso para el elemento en el objeto iterable en sí, y mantenga el elemento verdadero.
  
iterables: Objetos iterables (secuencias, diccionarios, etc.).

  
  

Dos, ejemplo de función de filtro

  

Ejemplo 1: encontrar una nueva secuencia compuesta de elementos mayores que cero en una secuencia

  
Primero veamos el resultado de la función de filtro sin agregar una lista, el código es el siguiente:

c = [-10, 28, 9, -5, 30, 5]
filter(lambda a:a>0, c)

obtuve la respuesta:

<filter at 0x27950dbb9d0>

Devuelve un iterador o un objeto de filtro evaluado de forma diferida. A continuación, veamos qué obtienes cuando usas la función de lista para convertir. El código es el siguiente:

c = [-10, 28, 9, -5, 30, 5]
list(filter(lambda a:a>0, c))

obtuve la respuesta:

[28, 9, 30, 5]

De los resultados, la función de la función de filtro es seleccionar elementos mayores que 0 en la secuencia c para formar un nuevo objeto o iterador. Convierta a través de la función de lista y luego obtenga una nueva lista compuesta de elementos elegibles. Si un amigo no está familiarizado con la función lambda en el código, puede consultar el artículo [Funciones comunes de Python] para que pueda comprender a fondo la función lambda en Python.

  

Ejemplo 2: encontrar una nueva secuencia compuesta de números distintos de cero en la secuencia

  
Como se mencionó en la definición de la función de filtro, el parámetro Ninguno en la función de filtro significa que no se llama a ninguna función, y solo los elementos en el objeto iterable se juzgan como verdaderos o falsos, y se mantienen los elementos verdaderos.
  
El código de prueba es el siguiente:

#找出序列中的非0数
c2 = [4, 9, 0, -5, -8, 7, 0]
list(filter(None, c2))

obtuve la respuesta:

[4, 9, -5, -8, 7]

Dado que el valor predeterminado de 0 es Falso en Python, y el valor predeterminado distinto de cero es Verdadero, 0 se filtra durante el proceso de filtrado.

  

Ejemplo 3: encontrar una nueva secuencia compuesta de claves mayores que 2 en el diccionario

  
Como se mencionó en la definición de la función de filtro, procesa objetos iterables, por lo que incluye objetos como listas y diccionarios. Los dos primeros ejemplos tratan con listas. En este ejemplo, observe el tratamiento de los diccionarios. el código se muestra a continuación:

#找出字典中大于2的键
list(filter(lambda x:x>2, {
    
    1:'杨紫', 2:'刘诗雯', 3:'张继科', 4:'王明', 5:'刘明'}))

obtuve la respuesta:

[3, 4, 5]

A partir de los resultados, cuando la función de filtro procesa el diccionario, el objeto filtrado es la clave del diccionario, no el valor del diccionario.

  

Ejemplo 4: encuentre números enteros positivos dentro de 100 que sean múltiplos de 3 e impares

  
Finalmente, veamos una pregunta que se encuentra a menudo en la escuela primaria, que es encontrar números enteros positivos que sean múltiplos de 3 y números impares dentro de 100. el código se muestra a continuación:

#求100以内既是奇数又是3的倍数的正整数
import numpy as np
list(filter(lambda x:x%2!=0 and x%3==0, np.arange(1, 101)))

obtuve la respuesta:

[3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

Entre ellos, np.arange(1, 101)) representa una secuencia aritmética con una tolerancia de 1 de 1 a 100.
  
x%2!=0 significa que el número no se puede dividir por 2, que es un número impar.
  
x%3==0 significa que el número se puede dividir por 3, que es un múltiplo de 3.
  
Puede verificarlo manualmente y encontrar que el resultado obtenido por Python es correcto.
  
Hasta ahora, se ha explicado la función de filtro en Python. Si desea saber más sobre las funciones en Python, puede ir a los artículos relacionados con el módulo "Aprender Python" en la cuenta oficial "Ali Yiyang's Code" .

  
Te puede interesar:
Dibuja Pikachu con Python
Dibuja un mapa de nube de palabras
con Python Dibuja 520 latidos eternos del corazón con Python Reconocimiento facial de Python: eres
en mis ojos
el único Usa la biblioteca py2neo en Python para operar neo4j y construir un mapa de relaciones Colección de código fuente de confesión romántica de Python (amor, rosa, pared de fotos, confesión bajo las estrellas)


Mantenga presionado (escanear) para reconocer el código QR anterior para aprender más Python y conocimientos de modelado, haciendo que su estudio y trabajo sean más brillantes.

Supongo que te gusta

Origin blog.csdn.net/qq_32532663/article/details/125460944
Recomendado
Clasificación