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.