Comparta algunas funciones útiles de Python de orden superior

¿Qué es una función de orden superior?

Función de orden superior: una función se puede pasar como parámetro a otra función, o el valor de retorno de una función es otra función (si el valor de retorno es la función en sí, es recursiva) y una de ellas es una función de orden superior.


función de mapeo map ()

Inserte la descripción de la imagen aquí

Como se muestra en la figura anterior, la función map () es en realidad una relación de mapeo uno a uno

Uso: La función map () recibe dos parámetros, uno es una función y el otro es una secuencia. El mapa aplica la función pasada a cada elemento de la secuencia por turno y devuelve el resultado como un iterador.

  • Nota: La función map () devuelve un iterador, que debe convertirse manualmente en una secuencia.

Regala una castaña:

Código:

func = lambda x: x**2

El efecto es el siguiente:

>>> map(func, [1, 2, 3, 4, 5])
<map object at 0x00000268C7446188>	#函数返回值其实是一个迭代器
>>> list(map(func, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]	#手动将其转换成列表

Regala dos castañas más:

>>> list(map(int, "123456789"))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> set(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
{
    
    '5', '8', '3', '7', '6', '4', '1', '2', '9'}

filter () función de filtro

Uso: filter () recibe una función función y una secuencia. La función de esta función es juzgar cada elemento en la secuencia y devolver Verdadero o Falso. Filter () filtra automáticamente los elementos no calificados de acuerdo con el resultado del juicio y devuelve Un iterador de una nueva secuencia de elementos elegibles.

Regala una castaña:

Código:

def func(x):
    /*保留整数序列中的偶数部分*/
    if x % 2 == 0:
        return True
   	else:
        return False

El efecto es el siguiente:

>>> list(filter(func, [x for x in range(1, 11)]))
[2, 4, 6, 8, 10]

Dale otra castaña

>>> names = ["Joker", "BatMan", "SuperMan", "me"]
>>> list(filter(lambda x:x.islower(), names))
['me']		#卑微的我

función reducir ()

Función: acumular los elementos en la secuencia de parámetros

Cómo usar: Realice las siguientes operaciones en todos los datos en una secuencia: use la función función (con dos parámetros) pasada para reducir para operar en el primer y segundo elementos del conjunto, y el resultado se comparará con el tercero Los datos se calculan con la función función, y finalmente se obtiene un resultado.

Nota: 1. A diferencia de las dos funciones anteriores, reduce () devuelve un valor, no un objeto iterador

2. En Python3, la función reduce () se eliminó del espacio de nombres global. Ahora está ubicada en el módulo functools. Si desea usarla, debe llamar a la función reduce () introduciendo el módulo functools

Regala una castaña:

>>> from functools import reduce
>>> add = lambda x, y:x + y
>>> reduce(add, range(1, 101))
5050

función de clasificación personalizada sorted ()

Rol: ordenar todos los objetos iterables

La diferencia entre ordenar y ordenar:

  1. sort es un método aplicado a la lista, sorted puede ordenar todos los objetos iterables;

  2. El método de clasificación de la lista devuelve una operación en una lista existente, mientras que el método ordenado de la función incorporada devuelve una nueva lista, no una operación sobre la base original.

sintaxis ordenada:

sorted(iterable, key=None, reverse=False) 

Descripción de parámetros:

  • objeto iterable-iterable
  • clave: se usa principalmente para comparar el elemento. Solo hay un parámetro. El parámetro de la función específica se toma del objeto iterable, especificando un elemento en el objeto iterable para ordenar
  • regla de ordenación inversa, reverse = True para orden descendente, reverse = False para orden ascendente (predeterminado)

Valor de retorno: la nueva lista después de reordenar

Dar una castaña

Descripción del Título:

  • Genere aleatoriamente una lista de 10 números enteros que van del 1 al 100, clasifique los elementos con índices de dígitos pares en orden ascendente y clasifique los elementos con índices de dígitos impares en orden descendente.
import random
ls = random.sample(range(1, 101), 10)
print(ls)		//排序前:[43, 71, 40, 4, 74, 58, 83, 55, 25, 54]
ls[::2] = sorted(ls[::2])
ls[1::2] = sorted(ls[1::2], reverse = True)
print(ls)		//排序后:[25, 71, 40, 58, 43, 55, 74, 54, 83, 4]

Dale otra castaña

Descripción del Título:

  • Genere aleatoriamente una lista de 10 números enteros que van de -100 a 100, ordenados por valor absoluto de menor a mayor
import random
ls = random.sample(range(-100, 101), 10)
print(ls)		//排序前:[60, -87, -73, -91, 21, -66, -95, 67, -1, 79]
ls = sorted(ls, key = abs)
print(ls)		//排序后:[-1, 21, 60, -66, 67, -73, 79, -87, -91, -95]


¡Por fin, las castañas están tan ricas! Realmente fragante ~~

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_45590494/article/details/104364074
Recomendado
Clasificación