använda ordlistan struktur med för loopar är otroligt effektiv i python. I det här kortet kommer jag att visa dig några exempel på sätt att använda ordböcker i för loopar.
det första exemplet Jag kommer att täcka utökar en ordbok till en lista med listor. Låt oss föreställa oss att du har en ordbok där nyckeln är produkten, och värdet är numret på produkten i lager., Nedan följer ett exempel på hur jag vill ändra min datastruktur:
- Input:
fruits = {'banana':3,'apple':2, 'mango':1, 'kiwi':5}
- Output:
fruits_list = , , , ]
för att uppnå detta kan vi börja med att skriva ut stegen till en lösning.
Vi måste iterera över fruktnycklar och bygga en lista som upprepar nyckeln N=value
gånger.
Jag kommer att göra detta med hjälp av listförståelse.,
- för att iterera över dict-objekt behöver du
fruits.items()
- för att bygga en lista som upprepar varje tangent N-tider gör:
*N
- som dict-värden anger hur många gånger du ska upprepa, gör:
*value
Jag kan skriva detta som en för loop och sedan konvertera den till lista förståelse som jag tycker är mer intuitivt. Nedan följer koden som en för loop:
Nu kan vi göra samma sak med en lista förståelse. Listförståelse är handlingen att sätta en för slinga i en lista., Det kan tyckas lite konstigt, men skaparna av python insåg att det var vanligt att använda en för loop för att skapa en lista som det var viktigt att skapa en genväg.
Listförståelse är tuff i början, eftersom det känns onaturligt, men ju mer du kodar i python desto mer hittar du de extra fördelarna med att använda listförståelse. Kom bara ihåg: allt du gör med listförståelse kan göras med en för slinga. Men det omvända är inte sant.,
syntax för lista förståelse
variable =
Du kan också lägga till ett villkorligt uttalande i en lista förståelse:
variable =
Så hur gäller detta för ovanstående problem? Tja, nedan visar jag hur vi kan använda det här nya formatet för att hjälpa oss!
Vi kommer att utforska mer Lista förståelse i framtiden, så för nu bara se till att du förstår hur vi använderdictionary.items()
metod
Lämna ett svar