Funções integradas do Python usadas no processamento de dados


Existem muitas funções integradas em python, que não são tão conhecidas quanto print, mas são extremamente poderosas e usá-las bem pode melhorar muito a eficiência do código.
Desta vez, vamos analisar 8 funções úteis integradas ao Python.

1. conjunto()

set()As funções são úteis quando uma lista precisa ser desduplicada .

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

set([iterable])Usado para criar uma coleção cujos elementos não são ordenados e não se repetem.
Após a criação do objeto coleção, as funções de união, interseção e diferença também podem ser utilizadas.

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. avaliação()

eval(str_expression)o papel éconverte uma string em uma expressão e executa

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

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

3. classificado()

No processo de processamento de dados, frequentemente usamos operações de classificação, como classificação de elementos em listas, dicionários e tuplas para frente/reverso.
É aí que entra sorted() , ele classifica qualquer iterável e retorna uma lista.
Classifique a lista em ordem crescente:

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

Opere na ordem inversa nas tuplas:

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

Use o parâmetro: chave, classifique por comprimento da string de acordo com regras personalizadas:

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

Classifique uma lista de tuplas de acordo com regras 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()

Se você precisar reverter os elementos de uma sequência, reversed()as funções podem ajudá-lo.
reversed()Pega uma sequência, inverte os elementos da sequência e finalmente retorna um 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() mapeará a sequência especificada de acordo com a função fornecida.

A primeira função de parâmetro chama a função de função com cada elemento na sequência de parâmetros e retorna uma nova lista contendo cada valor de retorno da função de função.

sintaxe da função map(): map(function, iterable, ...)
parâmetros:

  • função – a função
  • iterável – uma ou mais sequências
>>>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]

Ao processar texto, se desejar converter cada palavra da sequência para maiúsculas.
Desta vez você pode usar map()a função.

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

map()De acordo com a função fornecida, a sequência especificada será mapeada e, finalmente, um iterador será retornado.
Ou seja, map()a função processará cada elemento da sequência com o método especificado e, finalmente, retornará a sequência processada.
Por exemplo, para elevar ao quadrado cada número de uma lista:

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

6. reduzir()

Conforme mencionado anteriormente, cada número da lista é elevado ao quadrado, usando a função map().
Aí quero multiplicar cada elemento da lista, como fazer?
Neste momento, reduce()a função é usada.

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

O primeiro e o segundo elementos executam primeiro as operações de função, e os resultados gerados são então submetidos a operações de função com o terceiro elemento, e assim por diante, para finalmente gerar o resultado da operação cumulativa de todos os elementos.

Outro exemplo, concatenando letras em uma string:

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

Você deve ter notado que reduce()as funções não são mais funções integradas no python3, mas sim migradas para o módulo functools.
A função é mencionada aqui reduce()porque é muito importante.

7. filtro()

O que devo fazer se quiser remover números pares de uma 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()A função conclui a tarefa facilmente. Ela é usada para filtrar a sequência, filtrar os elementos que não atendem às condições e retornar um objeto iterador.
filter()As funções são semelhantes às map()funções reduce(), que mapeiam cada elemento da sequência para uma função e finalmente retornam o resultado.
Vamos tentar novamente como escolher palavras que contêm letras de muitas palavras w:

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

8. enumerar()

Nesse cenário, cada elemento da sequência e seu número de sequência correspondente são impressos ao mesmo tempo. Vamos usar a função enumerate() para ver.

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

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

enumerateA tradução significa enumeração e enumeração, portanto enumerate()a função é usada para realizar operações nos elementos da sequência 顺序标注e retornar um iterador composto por (elemento, índice).
Como outro exemplo, marque a string e retorne cada letra e seu índice:

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

Acho que você gosta

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