python | Funciones avanzadas | filtro | mapa | reducir | ordenado

filtro (func, iterable)

  • Llamar a la función de entrada en un bucle
  • Filtre los parámetros entrantes. Si el resultado de la función devuelve verdadero, guárdelo. Si devuelve falso, no lo haga. También devuelve un iterador.
  • Observaciones:
    • Cuando el iterador se agota, deséchelo hasta que todos se agoten;
    • Puede usar list () para convertir a una lista; si no se convierte, devuelve un objeto iterador, que se puede llamar directamente uno por uno utilizando un bucle for
# utils / core.py convert_legacy_filters_into_adhoc () 
para
filt en filtro ( lambda x: x no es None, fd [filtros]): fd [ ' adhoc_filters ' ] .append (to_adhoc (filt, ' SIMPLE ' , cláusula))

map (func, iterable) | reduce (func, iterable)

  • map pasará la función pasada a cada elemento de la secuencia a su vez y devolverá el resultado como un nuevo iterador
lista (mapa (str, [1,2,3,4,5,6,7,8]))
  • reduce aplica una función a una secuencia, la función debe aceptar dos parámetros
  • Cada resultado de cálculo continuará haciendo un cálculo acumulativo con el siguiente elemento
# 等效 写法
reduce (f, [x1, x2, x3, x4]) = f (f (f (x1, x2), x3), x4)

# exampl_1
de las funciones de importación reduce
def add (x, y):
  retorno x + y

reducir (agregar, [1,3,5,7,9])

# exampl_2: Convierte la secuencia [1, 3, 5, 7, 9]a un entero 13579
def fn (x, y):
  return x * 10 + y
reduce (fn, [1,3,5,7,9])

# exampl_2: La cadena strtambién es una secuencia, convierte str a int
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def str2int(s): def fn(x, y): return x * 10 + y def char2num(s): return DIGITS[s] return reduce(fn, map(char2num, s))

def char2num(s):
    return DIGITS[s] #使用lambda简化内容 def str2int(s): return reduce(lambda x, y: x * 10 + y, map(char2num, s))

ordenado (iterable, clave = func)

  • Agregue una función de tecla para personalizar la clasificación; la función especificada por la tecla actúa en cada elemento de la lista y se reordena de acuerdo con los resultados devueltos
# Ordenar por defecto en orden ascendente 
([36, 5, -12, 9, -21])
# Ordenar por valor absoluto
([36, 5, -12, 9, -21])  

# Ordenar por tamaño ASCII por defecto, ' Z '<' a ', entonces' Z 'viene primero
sorted(['bob', 'about', 'Zoo', 'Credit'])
# 实现忽略大小写的排序方法: 先将字符串全部转化为大写or小写
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
# 实现反向排序
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
# 实现L的按照名称排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
sorted(L, key=lambda x: x[0])

 

Supongo que te gusta

Origin www.cnblogs.com/bennyjane/p/12696939.html
Recomendado
Clasificación