Python é uma das linguagens de programação que mais cresce. Os desenvolvedores o usam para aprendizado de máquina e ciência de dados, entre outros tipos de aplicação. Antes de começar a aprender aspectos mais avançados da linguagem, você deve dominar uma das estruturas de dados mais comuns: as listas.
Listas em Python são arrays, familiares de outras linguagens de programação como C e C++. Você pode alterar o tamanho de uma lista e o Python cria vários métodos de lista por conveniência. Você pode armazenar vários tipos de dados em uma lista, como strings, objetos e até mesmo outras listas.
Por que usar diferentes técnicas de loop?
Você pode estar se perguntando se vale a pena aprender maneiras diferentes de percorrer uma lista Python quando um simples por loop pode fazer o trabalho.
Muitas vezes, é mais fácil usar um método abreviado, como compreensão de lista ou função lambda, para manter seu código conciso e menos confuso. Também ajuda a decidir qual técnica de travessia seria mais eficaz para uma lista complexa com muitos elementos.
Mais importante ainda, é comum que os entrevistadores façam perguntas complexas de passagem de lista. Se você conhece as diferentes maneiras de percorrer listas, estará mais bem preparado para responder a essas perguntas difíceis.
1. Atravessando usando o método For Loop and Range
Um dos métodos mais comuns para percorrer uma lista do Python é usar um loop for, e eles são muito semelhantes a outras linguagens de programação.
arr = [10, 20, 30, 40]
para val em arr:
imprimir('valor', valor)
Alternativamente, você também pode usar o variar() método para ter mais controle sobre o seu por ciclo. o variar() O método recebe três argumentos:
- start: denota o índice inicial da travessia do loop for.
- stop: informa ao programa o índice final/parada para a travessia do loop for. É comum usar o comprimento da lista (número de elementos) como índice de parada.
- step: O argumento step size é opcional. Se fornecido, ele define a quantidade que o loop for aumenta seu contador de execução a cada vez. Por padrão, o tamanho do passo é 1.
Para percorrer uma lista Python usando range():
arr = [10, 20, 30, 40, 50, 60]
para chave no intervalo (0, len (arr), 2):
imprimir('número', chave)
O exemplo acima executa o por loop do índice 0 até o comprimento do array e incrementa o contador de loop em 2.
2. Travessia abreviada usando compreensão de lista
Um dos recursos mais intuitivos do Python é compreensão da lista. Ele permite que você escreva soluções simples de uma linha para uma variedade de problemas diferentes.
Por exemplo, para calcular o quadrado dos 10 primeiros números, você pode simplesmente usar:
sq = [x ** 2 para x no intervalo (10)]
Dada uma lista de números, você pode imprimi-los usando a compreensão da lista da seguinte forma:
ar = [1, 3, 5, 7, 9]
[imprimir(val) por val em arr]
As compreensões de lista são muito poderosas e podem tornar a codificação muito fácil uma vez dominadas, portanto, certifique-se de passar algum tempo praticando bem.
3. Usando funções do Lambda em linha para percorrer uma lista
Normalmente, declaramos funções em Python usando o def palavra-chave e tem que fornecer um corpo e um cabeçalho de função dedicados. As funções do Lambda são um recurso poderoso do Python, tornando muito mais fácil escrever código simples e curto. Eles não têm nome e podem conter apenas uma única expressão. No entanto, você pode passar qualquer número de parâmetros para uma função lambda.
Quando combinado com o mapa() método, a função lambda pode efetivamente funcionar como um por ciclo. Para imprimir uma lista de números usando uma combinação de funções lambda e mapa():
arr = [1, 3, 4, 5, 6, 7, 8]
minhaDiversão = Lista(mapa (lambda z: z, arr))
imprimir(meuDiversão)
Loops Python são simples, mas onipresentes
Os loops são essenciais em todas as linguagens de programação e o Python não é diferente. A maioria dos programas que você escreve incluirá um loop em algum ponto, de uma forma ou de outra.
Isso vale duas vezes se você quiser usar o Python para projetos de ciência de dados ou aprendizado de máquina.