Til loop i Python

For-løkken i Python har nogle andre funktioner end andre programmeringssprog. Jeg efterlader dig, hvad jeg er ved at lære for at få mest muligt ud af en af ​​de mest brugte loops.

I Python er det beregnet til at iterere gennem et iterbart objekt, det være sig en liste, et objekt eller et andet element.

Følgende struktur er

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

for j in h2:
   instructions

Her er h2 et iterabelt element, for eksempel en liste h2=[ 'Valencia', 'Castellón', 'Alicante']. Sløjfen vil have 3 iterationer, i den første j=Valencia i den anden variablen j=Castellón.

Og med dette kan vi definere de instruktioner, vi ønsker, altid huske indrykningen, noget væsentligt i Python, og som mange mennesker ignorerer, får fejl i koden.

Gentag for loop et nøjagtigt antal gange.

Hvis vi vil have det til at gentage et vist antal gange, som vi kan gøre i C++, bliver vi nødt til at bruge range(). For at gentage 10 gange ville vi bruge en

for element in Range(9):
    instructions

Vi sætter 9 og ikke 10, fordi Range starter fra 0, så fra 0 til 9 er der 10 iterationer eller drejninger af løkken.

At kende Range() giver os mulighed for, i stedet for at sætte et tal indeni, at sætte en variabel, som vi vil have meget mere kontrol med.

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

Range-funktionen har mange muligheder, jeg vil tale om det i et andet indlæg, for ikke at blande indholdet og udvikle det så meget som muligt.

Meget mere kan gøres for at kontrollere flowet af for-løkken.

Bryd og fortsæt erklæringer

Der er 2 meget nyttige funktioner, der giver os mulighed for at gøre en for-løkke meget funktionel, f.eks. pausen og fortsættelsen. De bruges normalt med betingelser, hvis, for at kontrollere, om noget er sandt.

De fungerer i andre løkker, og der er en anden interessant sætning, der er pass, som er en sætning, der udføres, men som intet gør, og som er ideel til, når vi vil definere en struktur, der kræver kommandoer, men vi vil sætte dem senere (kommentarer er ikke nyttigt til dette)

Pause

Med pause kan vi forlade løkken til enhver tid. Som du forestiller dig meget nyttig. Det er rigtigt, at der er andre strukturer som Mens,

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')

Fortsæt.

Det får os til at gå til det næste element i løkken.

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/

For … andet

Der er en struktur afledt af For, som er for … andet

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

Denne struktur opstod, efter at de så, at det var nødvendigt, og at mange mennesker brugte alternative måder at opnå dette på. Dermed hjælper de folk og får en mere læsbar kode

for _ i iterable

Jeg har set dette i nogle programmer, selvom jeg aldrig har brugt det.

Når vi itererer et objekt, en liste, en ordbog osv., men indholdet af disse elementer ikke interesserer os, kan vi angive det med _

Et eksempel:

Vi vil gerne tælle elementerne i en liste, men vi er ligeglade med, hvad den indeholder, vi vil bare have dens længde.

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

På mange websteder anbefaler de ikke at misbruge denne praksis. Jeg kender virkelig ikke de fordele, det giver, er det hurtigere?

sløjfe baglæns

baglæns for sløjfe. At gentage fra slutningen til begyndelsen

Den bruger funktionen reversed() introduceret i python 3

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

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

Looping med to indekser, værdien af ​​den iterable og indeks

Med enumerate() kan vi arbejde med indeksene for en samling. Fordi mange gange, ud over værdien af ​​selve det iterable objekt, er vi interesserede i dets indeks.

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

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

Gentager over 2 lister

En anden meget interessant mulighed er zip(), som vil gøre vores arbejde lettere og vil gøre vores kode enklere og mere læsbar.

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

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

I Python 2.x blev izip() brugt til at forbedre denne funktion, men i Python 3 er izip zip()

Løkker i sorteret rækkefølge

Iterér i rækkefølge efter værdien af ​​objektet i stedet for efter dets indeks. sorted() bruges

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

for color in sorted(colors):
    print color

Og hvis vi vil gøre det baglæns

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

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

Brugerdefineret sorteringsrækkefølge

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

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

Sentinel Value in for loop

Sentinelværdien er en værdi, der får sløjfen til at slutte. Det præsenteres normalt i en while-løkke, men Raymond Hettinger viser os, hvordan man bruger det med et for, som er hurtigere

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

Traverse ordbøger med for

Ordbøger er væsentlige værktøjer til at udtrykke relationer og lave grupperinger.

Du kan gå gennem ordbogen på traditionel vis med for, men det vil ikke returnere alle oplysningerne, vi vil ikke kunne arbejde med værdier og indekser på den måde, hvis vi ikke begynder at tilføje tællere og andet elementer.

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

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

På denne måde kan vi, udover at se elementerne, modificere ordbogen ved at ændre elementer eller slette dem, samtidig med at for-løkken itereres.

d.keys() kalder argumenterne og laver en kopi, som den gemmer på en liste, som vi kan ændre.

At få indekser og værdier i stedet for noget traditionelt, og det er det første, der kommer til at tænke på for dem af os, der begynder at programmere

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

Vi vil bruge denne meget hurtigere mulighed

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

iteritems() end items()

Tal om Loops in Python af Raymond Hettinger

Det er en gammel, men meget illustrativ video, hvor Raymond Hettinger i løbet af de første 20 minutter lærer os de forskellige muligheder for loops i Python og giver os eksempler på, hvordan de transformerer strukturer, der er meget brugt af mennesker til funktioner, for at gøre loopen mere læsbar og enklere. .kode.

Efterlad en kommentar