Compreensão de conjuntos do Python

Resumo: neste tutorial, você aprenderá como usar a compreensão de conjunto do Python para criar um novo conjunto com base em um existente.

Introdução à compreensão do Python Set

Suponha que você tenha o seguinte conjunto que consiste em três tags:

tags = {'Django', 'Pandas', 'Numpy'}

Para converter as tags do conjunto para outro conjunto de tags em letras minúsculas, você pode usar o seguinte loop for:

tags = {'Django', 'Pandas', 'Numpy'}

lowercase_tags = set()
for tag in tags:
    lowercase_tags.add(tag.lower())

print(lowercase_tags)

Saída:

{'django', 'numpy', 'pandas'}

Como funciona:

  • Primeiro, itere sobre cada elemento do conjunto tags.
  • Em segundo lugar, converta cada tag para minúsculas e adicione-a ao novo conjunto (lowercase_tags)

Ou você pode usar a função interna map() com uma expressão lambda:

tags = {'Django', 'Pandas', 'Numpy'}
lowercase_tags = set(map(lambda tag: tag.lower(), tags))

print(lowercase_tags)

A função map() retorna um objeto de mapa, então você precisa usar a função set() para convertê-lo em um conjunto.

Para tornar o código mais conciso, o Python fornece a seguinte sintaxe de compreensão de conjunto:

{expression for element in set if condition}

A compreensão do conjunto permite criar um novo conjunto com base em um conjunto existente.

Uma compreensão de conjunto segue os seguintes passos:

  • Primeiro, itere sobre os elementos de um conjunto.
  • Em segundo lugar, aplique uma expression a cada elemento
  • Terceiro, crie um novo conjunto de elementos resultante da expressão.

Além disso, a compreensão do conjunto permite selecionar qual elemento aplicar a expressão por meio de uma condition na instrução if.

Observe que a compreensão do conjunto retorna um novo conjunto, não modifica o conjunto original.

De volta ao exemplo anterior, você pode converter todas as tags do conjunto tags usando a seguinte compreensão de conjunto:

tags = {'Django', 'Pandas', 'Numpy'}
lowercase_tags = {tag.lower() for tag in tags}

print(lowercase_tags)

Essa sintaxe definitivamente parece mais concisa do que um loop for e mais elegante do que a função map().

Compreensão de conjuntos Python com um exemplo dcom a instrução if

Suponha que você queira converter todos os elementos do conjunto tags para letras minúsculas, exceto o Numpy.

Para fazer isso, você pode adicionar uma condição à compreensão do conjunto como esta:

tags = {'Django', 'Pandas', 'Numpy'}
new_tags = {tag.lower() for tag in tags if tag != 'Numpy'}

print(new_tags)

Saída:

{'django', 'pandas'}

Resumo

  • Use a compreensão de conjunto do Python para criar um novo conjunto com base em um conjunto existente aplicando uma expressão a cada elemento do conjunto existente.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *