Para loop em Python

O loop For em Python tem alguns recursos diferentes de outras linguagens de programação. Deixo-vos o que estou a aprender para tirar o máximo proveito de um dos loops mais utilizados.

Em Python, pretende-se iterar através de um objeto iterável, seja uma lista, um objeto ou outro elemento.

A estrutura a seguir é

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in h2:
   instructions

Aqui h2 é um elemento iterável, por exemplo, uma lista h2=[ 'Valencia', 'Castellón', 'Alicante']. O loop terá 3 iterações, na primeira j=Valencia na segunda a variável j=Castellón.

E com isso podemos definir as instruções que queremos, lembrando sempre do recuo, algo essencial em Python e que muitas pessoas ignoram, obtendo erros no código.

Iterar o loop for um número exato de vezes.

Se quisermos que se repita um certo número de vezes, como podemos fazer em C++, teremos que usar range(). Para iterar 10 vezes, usaríamos um

for element in Range(9):
    instructions

Colocamos 9 e não 10 porque Range começa em 0, então de 0 a 9 existem 10 iterações ou voltas do loop.

Saber Range() nos permite, ao invés de colocar um número dentro, colocar uma variável, então teremos muito mais controle.

var = 10
for element in Range(var):
    instructions

A função Range tem muitas opções, falarei sobre isso em outro post, para não misturar o conteúdo e desenvolvê-lo ao máximo.

Muito mais pode ser feito para controlar o fluxo do loop for.

Declarações de interrupção e continuação

Existem 2 recursos muito úteis que nos permitem fazer um loop for muito funcional, o break e o continue. Eles geralmente são usados ​​com condicionais, se, verificando se algo é verdadeiro.

Eles funcionam em outros loops, e há outra instrução interessante que é pass, que é uma instrução que é executada mas não faz nada e é ideal para quando queremos definir uma estrutura que requer comandos mas queremos colocá-los depois (comentários são não é útil para isso)

Break

Com break podemos sair do loop a qualquer momento. Como você imagina muito útil. É verdade que existem outras estruturas como While,

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        break
else:
    print('No se encontró el número 3')

Continuar

Isso nos faz ir para o próximo elemento no loop.

numeros = [1, 2, 4, 3, 5, 8, 6]
for n in numeros:
    if n == 3:
        continue
else:
    print('No se encontró el número 3')

https://j2logo.com/bucle-for-en-python/

Para… mais

Existe uma estrutura derivada de For, que é para... senão

datos = [1, 2, 3, 4, 5]
for n in datos:
    if n == 2:
        break
else:
    print('No hay 2')

Essa estrutura surgiu depois que eles viram que era necessário e que muitas pessoas estavam usando formas alternativas para conseguir isso. Assim, eles ajudam as pessoas e obtêm um código mais legível

para _ em iterável

Eu vi isso em alguns programas, embora eu nunca tenha usado.

Quando estamos iterando um objeto, lista, dicionário, etc, mas o conteúdo desses elementos não nos interessa, podemos indicá-lo com _

Um exemplo:

Queremos contar os elementos de uma lista, mas não nos importamos com o que ela contém, queremos apenas seu comprimento.

h2=[ 'Valencia', 'Castellón', 'Alicante']
count = 0
for _ in h2:
    cont += 1

Em muitos sites eles recomendam não abusar dessa prática. Realmente não conheço as vantagens que apresenta, é mais rápido?

looping para trás

para trás para loop. Para iterar do fim ao início

Ele usa a função reversed() introduzida no python 3

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j in reversed(h2):
    print (j)

Looping com dois índices, valor do iterável e índice

Com enumerate() podemos trabalhar com os índices de uma coleção. Porque muitas vezes, além do valor do próprio objeto iterável, estamos interessados ​​em seu índice.

h2=[ 'Valencia', 'Castellón', 'Alicante']

for j, h in enumerate(h2):
    print j, '-->', h2[i] 

Iterando mais de 2 listas

Outra opção muito interessante é o zip() que facilitará nosso trabalho e tornará nosso código mais simples e legível.

h2=[ 'Valencia', 'Castellón', 'Alicante']
cod=[100, 200, 300]

for j, h in zip(h2, cod):
    print h2, '-->', cod 

Em Python 2.x izip() foi usado para aprimorar esta função, mas em Python 3 izip é zip()

Loop em ordem ordenada

Iterar em ordem pelo valor do objeto em vez de por seu índice. ordenado() é usado

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors):
    print color

E se quisermos fazer de trás para frente

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, reverse=True):
    print color

Ordem de classificação personalizada

colors = ['rojo', 'amarillo', 'verde']

for color in sorted(colors, key=len):
    print color

Valor do Sentinel em loop for

O valor sentinela é um valor que faz com que o loop termine. Geralmente é apresentado em um loop while, mas Raymond Hettinger nos mostra como usá-lo com um for, que é mais rápido.

blocks = []
for block in iter(partial(f.read, 32), ''):
    blocks.append(block)
    print (block)

Percorrer dicionários com for

Os dicionários são ferramentas essenciais para expressar relacionamentos e fazer agrupamentos.

Você pode percorrer o dicionário de forma tradicional com for, mas isso não retornará todas as informações, não poderemos trabalhar com valores e índices assim, se não começarmos a adicionar contadores e outros elementos.

d = {'casa': 'azul', 'coche': 'rojo', 'hombre': 'verde'}

for k in d.keys():
    if k.startswith('r'):
        del d[k]

Dessa forma, além de ver os elementos, podemos modificar o dicionário alterando elementos ou excluindo-os, ao mesmo tempo em que o loop for é iterado.

d.keys() chama os argumentos e faz uma cópia que armazena em uma lista que podemos modificar.

Obter índices e valores em vez de algo tradicional e essa é a primeira coisa que vem à mente para quem começa a programar

for k in d:
    print k, '-->', d[k]

Usaremos esta opção muito mais rápida

for k, v in d.items():
    print k, '-->', v

iteritems() do que items()

Fale sobre Loops em Python por Raymond Hettinger

É um vídeo antigo mas muito ilustrativo, onde nos primeiros 20 minutos Raymond Hettinger nos ensina as diferentes possibilidades de loops em Python e nos dá exemplos de como eles transformam estruturas amplamente utilizadas pelas pessoas em funções, para tornar o loop mais legível e simples . código.

Deixe um comentário