Python - Lysbegrip
Lys Begrip
Lysbegrip bied 'n korter sintaksis wanneer jy 'n nuwe lys wil skep gebaseer op die waardes van 'n bestaande lys.
Voorbeeld:
Op grond van 'n lys vrugte, wil jy 'n nuwe lys hê, wat slegs die vrugte bevat met die letter "a" in die naam.
Sonder lysbegrip sal jy 'n for
stelling moet skryf met 'n voorwaardelike toets binne:
Voorbeeld
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
Met lysbegrip kan jy dit alles doen met slegs een reël kode:
Voorbeeld
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
Die sintaksis
newlist = [expression for item in iterable if condition == True]
Die terugkeerwaarde is 'n nuwe lys, wat die ou lys onveranderd laat.
Toestand
Die toestand is soos 'n filter wat net die items aanvaar wat waardeer na
True
.
Voorbeeld
Aanvaar slegs items wat nie "appel" is nie:
newlist = [x for x in fruits if x != "apple"]
Die toestand
if x != "apple"
sal terugkeer True
vir alle elemente behalwe "appel", wat die nuwe lys alle vrugte bevat behalwe "appel".
Die voorwaarde is opsioneel en kan weggelaat word:
Voorbeeld
Met geen if
verklaring:
newlist = [x for x in fruits]
Herhaalbaar
Die iterable kan enige iterable voorwerp wees, soos 'n lys, tupel, stel ens.
Voorbeeld
Jy kan die range()
funksie gebruik om 'n herhaalbare te skep:
newlist = [x for x in range(10)]
Dieselfde voorbeeld, maar met 'n voorwaarde:
Voorbeeld
Aanvaar slegs getalle laer as 5:
newlist = [x for x in range(10) if x < 5]
Uitdrukking
Die uitdrukking is die huidige item in die iterasie, maar dit is ook die uitkoms wat jy kan manipuleer voordat dit soos 'n lysitem in die nuwe lys eindig:
Voorbeeld
Stel die waardes in die nuwe lys op hoofletters:
newlist = [x.upper()
for x in fruits]
Jy kan die uitkoms stel na wat jy wil:
Voorbeeld
Stel alle waardes in die nuwe lys op 'hallo':
newlist = ['hello' for x in fruits]
Die uitdrukking kan ook toestande bevat, nie soos 'n filter nie, maar as 'n manier om die uitkoms te manipuleer:
Voorbeeld
Keer "oranje" terug in plaas van "piesang":
newlist = [x if x != "banana" else "orange"
for x in fruits]
Die uitdrukking in die voorbeeld hierbo sê:
"Stuur die item terug as dit nie piesang is nie, as dit piesang is, gee terug lemoen".