Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Utilizando list comprehensions para encontrar todos os pares (i, j) dentro de um intervalo.

+1 voto
146 visitas
perguntada Set 8, 2020 em Programação Computacional por Lucas Lourenço (91 pontos)  
editado Set 9, 2020 por Lucas Lourenço

Use list comprehensions para encontrar todos os pares (i, j) tal que i ∈ {1, 2, 3, 4, 5} e j ∈ {a, b, c}.

Compartilhe
comentou Set 9, 2020 por danielcajueiro (5,486 pontos)  
Ola Lourenço. Primeiro vc precisa postar a pergunta e depois postar a resposta. Se nao fica parecendo que esta sem resposta.
comentou Set 9, 2020 por Lucas Lourenço (91 pontos)  
republicada Set 9, 2020 por Lucas Lourenço
Consertei professor, obrigado pela dica.

1 Resposta

+1 voto
respondida Set 9, 2020 por Lucas Lourenço (91 pontos)  

A resposta é bem direta. No meu caso, armazenei todos os pares em uma lista de tuplas.

a = [(i,j) for i in range(1,6) for j in ['a','b','c']]
a
comentou Nov 29, 2020 por Athos Carvalho (31 pontos)  
Ótima resposta! Sintética e eficiente.

Para demonstrar que, além de um ganho no tamanho da escrita, também há um benefício em relação ao tempo de execução, fiz um código que demonstra a diferença entre sua solução e uma implementação utilizando loop:

    import time

    testeloop = time.perf_counter()
        
    a = []
    
    for i in range(1,6):
        for j in ['a','b','c']:
            a.append((i,j))
    
    fimloop = time.perf_counter()
    print("Tempo com loop:", fimloop - testeloop)
    
    
    tempolc = time.perf_counter()
    
    b = [(i,j) for i in range(1,6) for j in ['a','b','c']]
    
    fimlc = time.perf_counter()
    
    print("Tempo com list comprehension:", fimlc - tempolc)

Ao rodar o código, obtive:

    Tempo com loop: 0.0002674999996088445
    Tempo com list comprehension: 0.00019590000010794029

Demonstrando a diferença no tempo de execução entre as duas implementações
...