Search
Close this search box.
Nested loop (loop aninhado) em Python
nested loop

Posts Relacionados:

Em Python, um nested loop (loop aninhado) é fundamental para iterar em estruturas de dados complexas e executar operações em vários elementos ao mesmo tempo.

Receba nossa newsletter

Nested Loop em Python

Nested loops (loops aninhados) são um conceito fundamental em Python. Eles são usados para iterar por estruturas de dados complexas como matrizes. Em dados multidimensionais, um nested loop itera com eficiência por linhas e colunas, acessando e manipulando os elementos de cada posição. Nested loops também são usados quando é necessário verificar todas as combinações possíveis de elementos de diferentes conjuntos. Muitos algoritmos dependem de nested loops para resolver problemas de maneira passo a passo.

Nested Loop na Prática

Um nested loop é um loop dentro de outro loop. Um loop é chamado interno e o outro é chamado loop externo. O loop externo controla a execução geral. Ele é executado para um número específico de iterações, conforme definido por sua condição. O loop interno reside dentro do recuo do loop externo. Ele é executado completamente para cada iteração do loop externo, criando um padrão de execução aninhado. Veja um exemplo:

				
					for i in range(5): # loop externo
    for j in range(8): # loop interno
        print(i + j, end=" ") 
    print() 

# resultado:
# 0 1 2 3 4 5 6 7 
# 1 2 3 4 5 6 7 8 
# 2 3 4 5 6 7 8 9 
# 3 4 5 6 7 8 9 10 
# 4 5 6 7 8 9 10 11 
				
			

Nested Loop com For e While Loop

Tanto o loop interno quanto o externo podem ser for ou while loops. No exemplo abaixo, o loop externo é um for loop e o interno é um while loop.

				
					for i in range(4): # for loop externo 
    j = 1
    while j < 5: # while loop interno 
        print('oi ' * (j+i), end=" ")
        j += 1
    print()
    
# resultado:
# oi  oi oi  oi oi oi  oi oi oi oi  
# oi oi  oi oi oi  oi oi oi oi  oi oi oi oi oi  
# oi oi oi  oi oi oi oi  oi oi oi oi oi  oi oi oi oi oi oi  
# oi oi oi oi  oi oi oi oi oi  oi oi oi oi oi oi  oi oi oi oi oi oi oi 
				
			

Iterações e Desempenho

O número de iterações para um nested loop é o produto das iterações do loop externo e do loop interno. Veja o exemplo:

				
					lista = [[1,2,3], [4,5,6]]

for i in range(len(lista)):
    for j in range(len(lista[i])):
        print(f"Item de valor {lista[i][j]} se localiza na Linha {i+1}, Coluna {j+1}")
# resultados
# Item de valor 1 se localiza na Linha 1, Coluna 1
# Item de valor 2 se localiza na Linha 1, Coluna 2
# Item de valor 3 se localiza na Linha 1, Coluna 3
# Item de valor 4 se localiza na Linha 2, Coluna 1
# Item de valor 5 se localiza na Linha 2, Coluna 2
# Item de valor 6 se localiza na Linha 2, Coluna 3
				
			

No exemplo acima, usamos uma lista complexa. Ela representa uma matriz com duas linhas e três colunas. O loop externo itera 2 vezes, pois a matriz tem 2 linhas. Dentro de cada iteração do loop externo, o loop interno é executado 3 vezes. O número 3 corresponde às 3 colunas da matriz. Para cada combinação de i e j, a mensagem impressa mostra o valor do item na iteração e sua posição na matriz. Como o número de iterações para um nested loop é o produto das iterações do loop externo e do loop interno, no nosso exemplo, esse valor é 6.

Como é fácil perceber no exemplo acima, nested loops podem ser úteis, mas devem ser usados com cuidado. Eles podem levar a problemas de desempenho se forem implementados em listas ou matrizes grandes, pois o número de iterações aumenta multiplicativamente. Quando é necessário iterar em estruturas complexas como matrizes, uma solução mais eficiente é a vetorização.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial