7.1 Ciclo for
Usar loops para iterar sobre elementos de um conjunto é uma tarefa comum em programação, especialmente quando é necessário processar cada elemento do conjunto.
Para iterar sobre elementos de um conjunto em Python, geralmente se usa o loop for. Como os conjuntos não têm uma ordem fixa de elementos, o loop for é ideal para percorrer os elementos do conjunto porque usa o mecanismo de iteradores.
Exemplo:
my_set = {1, 2, 3, 4, 5}
for element in my_set:
print(element)
Parece bem simples – vamos adicionar alguns exemplos práticos:
Somando elementos de um conjunto
Considere um exemplo em que somamos todos os elementos de um conjunto.
my_set = {1, 2, 3, 4, 5}
total = 0
for element in my_set:
total += element
print("Soma dos elementos do conjunto:", total)
Saída:
Soma dos elementos do conjunto: 15
Neste exemplo, usamos o loop for para adicionar cada elemento do conjunto my_set à variável total, resultando na soma de todos os elementos do conjunto.
Encontrando o elemento máximo
Agora, vamos encontrar o elemento máximo em um conjunto.
my_set = {1, 2, 3, 4, 5}
max_element = None
for element in my_set:
if max_element is None or element > max_element:
max_element = element
print("Elemento máximo do conjunto:", max_element)
Saída:
Elemento máximo do conjunto: 5
Neste exemplo, o loop for é usado para percorrer todos os elementos do conjunto e determinar o valor máximo.
Filtrando elementos
Vamos criar um novo conjunto contendo apenas os números pares do conjunto original.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
for element in my_set:
if element % 2 == 0:
even_set.add(element)
print("Conjunto de números pares:", even_set)
Conjunto de números pares: {2, 4, 6, 8, 10}
Neste exemplo, o loop for é usado para filtrar elementos que atendem a uma condição (paridade) e adicioná-los ao novo conjunto even_set.
7.2 Usando enumerate()
A função enumerate() retorna um iterador que gera tuplas contendo o índice e o elemento correspondente de um objeto iterável.
Ao trabalhar com conjuntos, o uso de enumerate() pode ser útil para obter índices dos elementos durante a iteração. No entanto, como os conjuntos são coleções não ordenadas, a ordem dos elementos em cada iteração não é garantida.
A função enumerate() funciona com conjuntos da mesma forma que com outros objetos iteráveis.
Iteração com índices
Usando enumerate() para obter índices dos elementos de um conjunto durante a iteração.
my_set = {10, 20, 30, 40, 50}
for index, element in enumerate(my_set):
print(f"Índice: {index}, Elemento: {element}")
Saída possível:
Índice: 0, Elemento: 40
Índice: 1, Elemento: 10
Índice: 2, Elemento: 50
Índice: 3, Elemento: 20
Índice: 4, Elemento: 30
Salvando índices e elementos em uma lista
Vamos considerar um exemplo em que salvamos índices e elementos de um conjunto em uma lista para processamento posterior.
my_set = {"apple", "banana", "cherry"}
indexed_elements = [(index, element) for index, element in enumerate(my_set)]
print(indexed_elements)
Saída possível:
[(0, 'banana'), (1, 'cherry'), (2, 'apple')]
Processando elementos usando seus índices
Consideremos um exemplo no qual realizamos uma operação específica sobre os elementos de um conjunto, usando seus índices.
my_set = {1, 2, 3, 4, 5}
squared_elements = {}
for index, element in enumerate(my_set):
squared_elements[index] = element ** 2
print(squared_elements)
Saída possível:
{0: 16, 1: 1, 2: 25, 3: 4, 4: 9}
7.3 Usando o loop while
Em princípio, ao trabalhar com conjuntos, também é possível usar o loop while. Por exemplo, você pode remover tarefas (elementos) do conjunto uma a uma enquanto ele não estiver vazio:
my_set = {"limpar a casa", "lavar a louça", "comprar pão"}
while len(my_set) > 0:
task = my_set.pop()
print(task)
Esse método funcionará. No geral, você tem uma variedade de maneiras de trabalhar com um conjunto de elementos — use a que mais te agradar.
GO TO FULL VERSION