Como filtrar a lista em Python da maneira certa para obter mais dos seus dados

Em Python, uma das formas mais populares de armazenar dados sequenciais ou ordenados é por meio do uso de listas. Uma lista em Python é uma estrutura de dados integrada, mutável e ordenada usada para armazenar uma coleção de dados. Os itens armazenados em uma lista são indexados a partir de zero e os usuários podem alterar o conteúdo de uma lista depois de criada.

O fato de os itens em uma lista serem indexados permite o armazenamento de itens duplicados em uma lista. As listas em Python também podem conter elementos de diferentes tipos de dados. Os itens em uma lista são separados por vírgulas e colocados entre colchetes.

Aqui estão exemplos de listas em Python:

# A list containing one data type - String
colors = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

# A list containing multiple data types
movies = ['Transformers', 2012, 'Avengers', 300]

# A list with duplicate values
users = ['John', 'Mary', 'Elizabeth', 'John']

As listas são uma estrutura de dados muito versátil e você pode executar muitas operações nos dados armazenados nas listas. Uma operação comum e útil realizada em listas é a filtragem dos dados armazenados na lista.

Por que filtrar listas é importante

Filtrar uma lista significa extrair subconjuntos específicos de dados que atendem a um determinado critério. Por exemplo, podemos estar interessados ​​apenas em números pares em uma lista contendo os números de 1 a 10. Para extrair esses dados da lista, tudo o que precisamos fazer é filtrar a lista para obter números que sejam exatamente divisíveis por dois.

A filtragem é particularmente útil na manipulação e análise de dados, pois permite remover itens indesejados das listas, criar novas listas contendo itens que atendem a determinados critérios e extrair dados que atendem a determinadas condições.

Algumas aplicações do mundo real de listas de filtragem incluem:

  • Validação de dados – Ao trabalhar com uma lista, você pode querer trabalhar apenas com dados que atendam a um determinado critério. Por exemplo, em uma lista de usuários, você pode estar interessado em usuários com nome e sobrenome. A filtragem pode permitir que você verifique e valide os dados na lista antes de processá-los. Dessa forma, você evita trabalhar com dados que não atendem aos seus requisitos.
  • Limpeza de dados – Como as listas podem armazenar uma variedade de tipos de dados, não é raro descobrir que as listas contêm dados indesejados nos quais você não está interessado. Por exemplo, em uma lista contendo nomes, você pode não estar interessado em valores numéricos em a lista. Através da filtragem, você pode remover os dados indesejados.
  • Análise de dados – A filtragem de dados é particularmente útil na análise de dados, pois permite que você se concentre em subconjuntos específicos de dados, o que permite identificar facilmente padrões e tendências. Por exemplo, em uma lista de alunos, você pode filtrar alunos do sexo masculino e feminino e usar o resultado na análise de dados. Você pode até filtrar de acordo com idade, localização e série. Isso permite que você tire conclusões mais úteis de subconjuntos específicos de dados em uma lista
  3 Melhor Estrutura/Biblioteca JavaScript para Desenvolvimento Front-End

A filtragem de listas é uma função muito útil, pois permite controlar os dados armazenados em uma lista, permitindo que você trabalhe apenas com os dados de seu interesse.

Segmentar subconjuntos específicos de dados armazenados em uma lista é muito útil, pois simplifica o processamento e a análise de dados, tornando os processos melhores, mais rápidos e mais precisos.

Usando a função filter()

A função filter() é uma função interna do Python que pode ser usada para iterar por meio de um iterável, como uma lista, tuplas, conjunto ou dicionário, e extrair itens no iterável que satisfaçam uma determinada condição.

Um Iterable em Python é um objeto que pode ser repetido através de seus elementos um por um. A iteração por meio de um iterável retorna os itens do iterável por vez.

A sintaxe da função de filtro é a seguinte:

filter(function, iterable)

function – uma função Python que contém a condição de filtragem

iterável – o iterável que será filtrado. Neste caso, estaremos usando uma lista.

A função filter() pega a função passada e a aplica a cada item no iterável passado, testando a condição de filtragem em relação ao item. Se o item satisfizer a condição, ou seja, retornará o booleano true, que será selecionado pela função filter(). Caso não satisfaça a condição, o item não é selecionado.

A função filter() retorna um iterável com itens que passaram na condição de filtragem. Você pode criar uma nova lista contendo itens que passaram na condição de filtragem usando a função list().

Para ver a função filter() em ação, considere a lista abaixo, que está sendo filtrada para selecionar números menores que 50:

#A list of numbers
numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

# function containing the filtering condition
def is_even(num):
   if num < 50:
      return True
   else:
      return False

# the function list() is used to create a list from the iterable
# returned by the filter() function
filtered_numbers = list(filter(is_even, numbers))
print(filtered_numbers)

O código acima imprime o seguinte resultado:

[15, 46, 24, 37]

Usando um loop for

Em Python, um loop for é uma instrução de fluxo de controle usada para iterar sobre estruturas de dados sequenciais, como uma lista, tuplas, strings e arrays. Um loop for executa repetidamente um bloco de código para cada item em uma sequência.

  Como configurar o Desbloqueio facial no Google Pixel 4 e Pixel 4 XL

A sintaxe geral para um loop for é a seguinte:

for item in iterable:
    # Block of code to be executed for each item in the iterabele

item – uma variável que representa o item atual sendo processado em uma iteração do loop

iterável – a sequência sobre a qual o loop for itera. Neste caso, uma lista

Para filtrar uma lista usando um loop for, precisamos passar nossa condição de filtragem na seção do bloco de código a ser executado. Desta forma, cada item será avaliado para ver se satisfaz uma determinada condição.

Ao usar um loop for para filtrar uma lista, você também precisa criar uma lista vazia onde você anexará valores que passam pela sua condição de filtragem.

Para ver isso em ação, vamos filtrar uma lista de números para obter números menores que 50 usando um loop for:

numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

filtered_numbers = []

for num in numbers:
    if num < 50:
        # append() used to add a number that passes the condition
        # into filtered_numbers.
        filtered_numbers.append(num)

print(filtered_numbers)

O código acima imprime o seguinte resultado:

[15, 46, 24, 37]

Usando outra lista

Você pode filtrar uma lista usando outra verificando se um item em uma lista que deseja filtrar aparece em outra lista. Por exemplo, considere as duas listas a seguir

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']

vowels = ['a', 'e', 'i', 'o', 'u']

Na lista chamada letras acima, podemos determinar quais itens da lista não são vogais, verificando se o item aparece na lista de vogais ou não. Se um item não aparecer na lista de vogais, então não é uma vogal.

Dessa forma, podemos obter todos os caracteres em letras que não sejam vogais. Para fazer isso, execute o seguinte código:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

not_vowel = []

for letter in letters:
    if letter not in vowels:
        not_vowel.append(letter)
print(not_vowel)

O código acima imprime a seguinte saída, que contém caracteres em letras que não são vogais.

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

Usando compreensão de lista

Em Python, a compreensão de lista oferece uma sintaxe mais curta, mais concisa e mais limpa para criar uma nova lista a partir de uma lista existente. A compreensão de lista tem a capacidade de reduzir as várias linhas de código usadas para criar uma nova lista a partir de outra lista usando um loop for em uma única linha.

  Por que as lentes de boas câmeras são tão importantes?

Isso ocorre porque, ao usar a compreensão de lista, você define e adiciona itens à nova lista em uma linha.

A sintaxe para compreensão de lista é a seguinte:

new_list = [expression for element in iterable if condition]

new_list – uma nova lista contendo elementos adicionados pela compreensão da lista

expressão – uma operação que será aplicada a cada item do iterável

item – nome da variável que representa o item atualmente ativo no iterável

iterable – um iterável a partir do qual os itens serão selecionados.

if condition – uma parte opcional onde uma condição pode ser adicionada para filtrar itens para adicionar apenas aqueles que satisfaçam uma determinada condição na nova lista que está sendo criada.

Para ver a compreensão da lista em ação e o quanto ela pode simplificar o processo de filtragem e criação de uma nova lista, usaremos a lista de letras e vogais para filtrar os itens da lista de letras que não estão na lista de vogais. Para fazer isso, execute o seguinte código:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

# list comprehension
not_vowel = [letter for letter in letters if letter not in vowels]
print(not_vowel)

A saída do código acima é mostrada abaixo:

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

A saída é semelhante ao exemplo anterior, que usou um loop for para filtrar uma lista usando outra lista. No entanto, ele usa menos linhas de código para obter o mesmo resultado.

Conclusão

Ao trabalhar com dados em Python, uma operação comum que você deve executar é filtrar dados de um iterável, como uma lista. Esta é uma etapa muito útil na análise e processamento de dados, pois permite trabalhar apenas com dados relevantes para a operação ou processamento que está sendo feito.

Uma estrutura de dados sequenciais muito popular em Python é a lista. Caso você esteja trabalhando com uma lista e precise filtrá-la, considere o uso de qualquer um dos métodos destacados no artigo.

Você também pode ler sobre como usar funções lambda em Python com exemplos.