Funciones integradas de Python utilizadas en el procesamiento de datos


Hay muchas funciones integradas en Python, que no son tan conocidas como imprimir, pero son extremadamente poderosas y su buen uso puede mejorar en gran medida la eficiencia del código.
Esta vez, analicemos 8 funciones útiles integradas en Python.

1. establecer()

set()Las funciones resultan útiles cuando es necesario deduplicar una lista .

obj = ['a','b','c','b','a']
print(set(obj))
# 输出:{'b', 'c', 'a'}

set([iterable])Se utiliza para crear una colección cuyos elementos están desordenados y no se repiten.
Una vez creado el objeto de colección, también se pueden utilizar las funciones de unión, intersección y diferencia.

A = set('hello')
B = set('world')

A.union(B) # 并集,输出:{'d', 'e', 'h', 'l', 'o', 'r', 'w'}
A.intersection(B) # 交集,输出:{'l', 'o'}
A.difference(B) # 差集,输出:{'d', 'r', 'w'}

2. evaluar()

eval(str_expression)el papel esconvierte una cadena en una expresión y ejecuta

a = eval('[1,2,3]')
print(type(a))
# 输出:<class 'list'>

b = eval('max([2,4,5])')
print(b)
# 输出:5

3. ordenado()

En el proceso de procesamiento de datos, a menudo utilizamos operaciones de clasificación, como ordenar los elementos en listas, diccionarios y tuplas hacia arriba/abajo.
Ahí es donde entra en juego sorted() , ordena cualquier iterable y devuelve una lista.
Ordene la lista en orden ascendente:

a = sorted([2,4,3,7,1,9])
print(a)
# 输出:[1, 2, 3, 4, 7, 9]

Operar en orden inverso en tuplas:

sorted((4,1,9,6),reverse=True)
print(a)
# 输出:[9, 6, 4, 1]

Utilice parámetro: clave, ordene por longitud de cadena según reglas personalizadas:

chars = ['apple','watermelon','pear','banana']
a = sorted(chars,key=lambda x:len(x))
print(a)
# 输出:['pear', 'apple', 'banana', 'watermelon']

Ordena una lista de tuplas según reglas personalizadas:

tuple_list = [('A', 1,5), ('B', 3,2), ('C', 2,6)]
# key=lambda x: x[1]中可以任意选定x中可选的位置进行排序
a = sorted(tuple_list, key=lambda x: x[1])
print(a)
# 输出:[('A', 1, 5), ('C', 2, 6), ('B', 3, 2)]

4. invertido()

Si necesitas invertir los elementos de una secuencia, reversed()las funciones pueden ayudarte.
reversed()Toma una secuencia, invierte los elementos de la secuencia y finalmente devuelve un iterador.

a = reversed('abcde')
print(list(a))
# 输出:['e', 'd', 'c', 'b', 'a']

b = reversed([2,3,4,5])
print(list(b))
# 输出:[5, 4, 3, 2]

5. mapa()

map() asignará la secuencia especificada de acuerdo con la función proporcionada.

La primera función de parámetro llama a la función con cada elemento de la secuencia de parámetros y devuelve una nueva lista que contiene cada valor de retorno de la función.

sintaxis de la función map(): map(function, iterable, ...)
parámetros:

  • función – la función
  • iterable: una o más secuencias
>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

Al procesar texto, si desea convertir cada palabra de la secuencia a mayúsculas.
Esta vez puedes usar map()la función.

chars = ['apple','watermelon','pear','banana']
a = map(lambda x:x.upper(),chars)
print(list(a))
# 输出:['APPLE', 'WATERMELON', 'PEAR', 'BANANA']

map()Según la función proporcionada, se asignará la secuencia especificada y finalmente se devolverá un iterador.
Es decir, map()la función procesará cada elemento de la secuencia con el método especificado y finalmente le devolverá la secuencia procesada.
Por ejemplo, para elevar al cuadrado cada número de una lista:

nums = [1,2,3,4]
a = map(lambda x:x*x,nums)
print(list(a))
# 输出:[1, 4, 9, 16]

6. reducir()

Como se mencionó anteriormente, cada número de la lista se eleva al cuadrado mediante la función map().
Entonces quiero multiplicar cada elemento de la lista, ¿cómo lo hago?
En este momento, reduce()se utiliza la función.

from functools import reduce
nums = [1,2,3,4]
a = reduce(lambda x,y:x*y,nums)
print(a)
# 输出:24

El primer y segundo elemento se someten primero a operaciones funcionales, y los resultados generados luego se someten a operaciones funcionales con el tercer elemento, y así sucesivamente, para finalmente generar el resultado de la operación acumulativa de todos los elementos.

Otro ejemplo, concatenando letras en una cadena:

from functools import reduce
chars = ['a','p','p','l','e']
a = reduce(lambda x,y:x+y,chars)
print(a)
# 输出:apple

Es posible que haya notado que reduce()las funciones ya no son funciones integradas en python3, sino que se migraron al módulo functools.
La función se menciona aquí reduce()porque es demasiado importante.

7. filtro()

¿Qué debo hacer si quiero eliminar números pares de una lista de números?

nums = [1,2,3,4,5,6]
a = filter(lambda x:x%2!=0,nums)
print(list(a))
# 输出:[1,3,5]

filter()La función completa fácilmente la tarea, se utiliza para filtrar la secuencia, filtrar los elementos que no cumplen las condiciones y devolver un objeto iterador.
filter()Las funciones son similares a map()las funciones reduce(), que asignan cada elemento de la secuencia a una función y finalmente devuelven el resultado.
Intentemos nuevamente cómo seleccionar palabras que contengan letras de muchas palabras w:

chars = chars = ['apple','watermelon','pear','banana']
a = filter(lambda x:'w' in x,chars)
print(list(a))
# 输出:['watermelon']

8. enumerar()

En tal escenario, cada elemento de la secuencia y su número de secuencia correspondiente se imprimen al mismo tiempo. Usemos la función enumerate() para verlo.

chars = ['apple','watermelon','pear','banana']
for i,j in enumerate(chars):
    print(i,j)

'''
输出:
0 apple
1 watermelon
2 pear
3 banana
'''

enumerateLa traducción significa enumeración y enumeración, por lo que enumerate()la función se usa para realizar operaciones en los elementos de la secuencia 顺序标注y devolver un iterador compuesto por (elemento, índice).
Como otro ejemplo, marque la cadena y devuelva cada letra y su índice:

a = enumerate('abcd')
print(list(a))
# 输出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

Supongo que te gusta

Origin blog.csdn.net/Waldocsdn/article/details/105109196
Recomendado
Clasificación