Conjunto Python

Resumo : neste tutorial, você aprenderá sobre Seto tipo Python e como usá-lo de forma eficaz.

Introdução ao tipo Python Set

Um conjunto Python é uma lista não ordenada de elementos imutáveis. Isso significa:

  • Os elementos de um conjunto não são ordenados.
  • Os elementos de um conjunto são únicos. Um conjunto não permite elementos duplicados.
  • Os elementos de um conjunto não podem ser alterados. Por exemplo, podem ser números , strings e tuplas , mas não podem ser listas ou dicionários .

Para definir um conjunto em Python, você usa chaves {}. Por exemplo:

skills = {'Python programming','Databases', 'Software design'}Linguagem de código:  JavaScript  ( javascript )

Observe que um dicionário também usa chaves, mas seus elementos são pares de valores-chave.

Para definir um conjunto vazio, você não pode usar chaves assim:

empty_set = {}

…porque define um dicionário vazio.

Portanto, você precisa usar a função integrada set():

empty_set  = set()Linguagem de código:  JavaScript  ( javascript )

Um conjunto vazio é avaliado como False no contexto booleano . Por exemplo:

skills = set()

if not skills:
    print('Empty sets are falsy')
Linguagem de código:  PHP  ( php )

Saída:

Empty sets are falsy    Linguagem de código:  PHP  ( php )

Na verdade, você pode passar um iterável para a set()função para criar um conjunto. Por exemplo, você pode passar uma lista, que é iterável, para a set()função assim:

skills = set(['Problem solving','Critical Thinking'])
print(skills)Linguagem de código:  PHP  ( php )

Saída:

{'Critical Thinking', 'Problem solving'}Linguagem de código:  JavaScript  ( javascript )

Observe que a ordem original dos elementos pode não ser preservada.

Se um iterável tiver elementos duplicados, a set()função irá removê-los. Por exemplo:

characters = set('letter')
print(characters)Linguagem de código:  PHP  ( php )

Saída:

{'r', 'l', 't', 'e'}
Linguagem de código:  JavaScript  ( javascript )

Neste exemplo, a string 'letter'tem dois caracteres e e t e set() remove cada um deles.

Obtendo tamanhos de um conjunto

Para obter o número de elementos em um conjunto, você usa a função integrada len().

len(set)
Linguagem de código:  JavaScript  ( javascript )

Por exemplo:

ratings = {1, 2, 3, 4, 5}
size = len(ratings)

print(size)    Linguagem de código:  PHP  ( php )

Saída:

5

Verificando se um elemento está em um conjunto

Para verificar se um conjunto contém um elemento, você usa o inoperador:

element in setLinguagem de código:  JavaScript  ( javascript )

O inoperador retorna Truese o conjunto contém o elemento. Caso contrário, ele retorna False. Por exemplo:

ratings = {1, 2, 3, 4, 5}
rating = 1

if rating in ratings:
    print(f'The set contains {rating}')Linguagem de código:  PHP  ( php )

Saída:

The set contains 1Linguagem de código:  JavaScript  ( javascript )

Para negar o inoperador, você usa o notoperador. Por exemplo:

ratings = {1, 2, 3, 4, 5}
rating = 6

if rating not in ratings:
    print(f'The set does not contain {rating}')
Linguagem de código:  PHP  ( php )

Saída:

The set does not contain 6Linguagem de código:  JavaScript  ( javascript )

Adicionando elementos a um conjunto

Para adicionar um elemento a um conjunto, você usa o add()método:

set.add(element)
Linguagem de código:  JavaScript  ( javascript )

Por exemplo:

skills = {'Python programming', 'Software design'}
skills.add('Problem solving')

print(skills)
Linguagem de código:  PHP  ( php )

Saída:

{'Problem solving', 'Software design', 'Python programming'}
Linguagem de código:  JavaScript  ( javascript )

Removendo um elemento de um conjunto

Para remover um elemento de um conjunto, você usa o remove()método:

set.remove(element)
Linguagem de código:  JavaScript  ( javascript )

Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}
skills.remove('Software design')

print(skills)Linguagem de código:  PHP  ( php )

Saída:

{'Problem solving', 'Python programming'}Linguagem de código:  JavaScript  ( javascript )

Se você remover um elemento que não existe em um conjunto, receberá um erro ( KeyError). Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}
skills.remove('Java')
Linguagem de código:  JavaScript  ( javascript )

Erro:

KeyError: 'Java'Linguagem de código:  JavaScript  ( javascript )

Para evitar o erro, você deve usar o inoperador para verificar se um elemento está no conjunto antes de removê-lo:

skills = {'Problem solving', 'Software design', 'Python programming'}
if 'Java' in skills:
    skills.remove('Java')
Linguagem de código:  JavaScript  ( javascript )

Para tornar mais conveniente, o conjunto possui o discard()método que permite remover um elemento. E não gera erro se o elemento não estiver na lista:

set.discard(element)
Linguagem de código:  JavaScript  ( javascript )

Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}
skills.discard('Java')
Linguagem de código:  JavaScript  ( javascript )

Retornando um elemento de um conjunto

Para remover e retornar um elemento de um conjunto, você usa o pop()método.

Como os elementos de um conjunto não possuem uma ordem específica, o pop()método remove um elemento não especificado de um conjunto.

Se você executar o código a seguir várias vezes, ele mostrará um valor diferente a cada vez:

skills = {'Problem solving', 'Software design', 'Python programming'}
skill = skills.pop()

print(skill)
Linguagem de código:  PHP  ( php )

Removendo todos os elementos de um conjunto

Para remover todos os elementos de um conjunto, você usa o clear()método:

set.clear()
Linguagem de código:  JavaScript  ( javascript )

Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}
skills.clear()

print(skills)
Linguagem de código:  PHP  ( php )

Saída:

set()
Linguagem de código:  JavaScript  ( javascript )

Congelou um conjunto

Para tornar um conjunto imutável, você usa a função interna chamada frozenset(). O frozenset()retorna um novo conjunto imutável de um existente. Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}
skills = frozenset(skills)
Linguagem de código:  JavaScript  ( javascript )

Depois disso, se você tentar modificar elementos do conjunto, receberá um erro:

skills.add('Django')
Linguagem de código:  JavaScript  ( javascript )

Erro:

AttributeError: 'frozenset' object has no attribute 'add'Linguagem de código:  JavaScript  ( javascript )

Loop através de elementos do conjunto

Como um conjunto é iterável, você pode usar um loop for para iterar sobre seus elementos. Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}

for skill in skills:
    print(skill)
Linguagem de código:  PHP  ( php )

Saída:

Software design
Python programming
Problem solving

enumerate()Para acessar o índice do elemento atual dentro do loop, você pode usar a função integrada :

skills = {'Problem solving', 'Software design', 'Python programming'}

for index, skill in enumerate(skills):
    print(f"{index}.{skill}")
Linguagem de código:  PHP  ( php )

Saída:

0.Software design
1.Python programming
2.Problem solvingLinguagem de código:  CSS  ( css )

Por padrão, o índice começa em zero. Para mudar isso, você passa o valor inicial para o segundo argumento da enumerate()função. Por exemplo:

skills = {'Problem solving', 'Software design', 'Python programming'}

for index, skill in enumerate(skills, 1):
    print(f"{index}.{skill}")Linguagem de código:  PHP  ( php )

Saída:

1.Python programming
2.Problem solving
3.Software designLinguagem de código:  CSS  ( css )

Observe que toda vez que você executar o código, você obterá os elementos do conjunto em uma ordem diferente.

No próximo tutorial, você aprenderá como realizar operações úteis em conjuntos como:

Resumo

  • Um conjunto é uma coleção não ordenada de elementos imutáveis .

Deixe um comentário

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