Aloita suorimmalla kuviolla: iteroi avain -arvoparit käyttämällä sanakirjanäkymäobjekteja dokumentaatiossa. Näkymien avulla voit kulkea avaimet, arvot tai kohteet kopioimatta, ja ne heijastavat automaattisesti taustalla olevaan sanakirjaan.
Menetelmä 1: iteroi avainarvoparitdict.items()
Vaihe 1:Luo tai lataa sanakirja prosessille.
users = {"alice": 3, "bob": 7, "carol": 1}Vaihe 2:Silmukka avain -arvon yliitems().
for name, score in users.items():
print(name, score)Vaihe 3:Korvaa tulostus logiikalla (laske, muunta tai soita sovellusliittymään), kun sekä avain että arvo ovat käytettävissä.
Menetelmä 2: iteraa vain arvotdict.values()
Vaihe 1:Käytä arvonäkymää, kun et tarvitse avaimia.
scores = {"a": 10, "b": 20, "c": 30}
for value in scores.values():
print(value)Vaihe 2:Suorita laskelmat, jotka riippuvat vain arvoista (esimerkiksi kokonaismäärät tai kynnysarvot).
Menetelmä 3: ITERATE -näppäimet (oletus) ja käyttöarvot avaimen mukaan
Vaihe 1:Silmukka sanakirjan päälle suoraan saadaksesi avaimet.
inventory = {"apples": 5, "oranges": 2, "bananas": 8}
for item in inventory:
print(item, inventory[item])Vaihe 2:Mieluummin tämä, kun tarvitset enimmäkseen avaimia ja luet vain satunnaisesti arvon.
Menetelmä 4: iteroi tietyssä järjestyksessäsorted()
Vaihe 1:Lajittele avaimen mukaan ennustettavissa olevalle siirtymiselle.
prices = {"pear": 1.4, "apple": 0.9, "orange": 1.2}
for k in sorted(prices):
print(k, prices[k])Vaihe 2:Lajittele arvon mukaan avaintoiminnon avulla.
for k, v in sorted(prices.items(), key=lambda item: item[1]):
print(k, v)Vaihe 3:Käännä järjestys kulkemallareverse=Trueviitteeseen.
for k in sorted(prices, reverse=True):
print(k, prices[k])Menetelmä 5: Muokkaa sanakirjaa turvallisesti iteroivan aikana
Vaihe 1:Iteroi staattisen tilannekuvan yli poistaessasi tai lisäämällä kohteita.
# Remove even values safely
data = {"x": 2, "y": 3, "z": 4}
for k, v in list(data.items()): # snapshot
if v % 2 == 0:
del data[k]
print(data) # {'y': 3}Vaihe 2:Rakenna uudet merkinnät väliaikaiseen sanaan tai luetteloon, sulaudu sitten silmukan jälkeen koonmuutosvirheiden välttämiseksi.
updates = {}
for k, v in list(data.items()):
if v < 5:
updates[f"{k}_small"] = v * 10
data.update(updates)Vinkki: Live -näkymän iterointi muuttaessa kokoa kerää suorituksen virheen. Tilannekuva (list(d.items())tailist(d)) Vältä tätä ja pitää mutaatiologiikan selkeänä.
Menetelmä 6: Kuluta tuhoavasti kohteitapopitem()(Lifo)
Vaihe 1:Käyttää awhileSilmukka esineiden poistamiseksi ja käsittelemiseksi, kunnes sanakirja on tyhjä.
work = {"t1": "A", "t2": "B", "t3": "C"}
while work:
key, value = work.popitem()
# Process and discard
print("done:", key, value)Vaihe 2:Valitse tämä malli, kun haluat nimenomaisesti tyhjentää sanakirjan ja vapaan muistin menemällä.
Menetelmä 7: Muuta tai suodata sanakirjan ymmärtämisellä
Vaihe 1:Rakenna muuttunut sanakirja yhdelle passille.
prices = {"apple": 1.00, "orange": 0.80, "banana": 0.50}
discounted = {k: round(v * 0.9, 2) for k, v in prices.items()}
print(discounted) # {'apple': 0.9, 'orange': 0.72, 'banana': 0.45}Vaihe 2:Suodata kohteet ehdoilla iteroivan aikana.
cheap = {k: v for k, v in prices.items() if v < 0.9}
print(cheap) # {'orange': 0.8, 'banana': 0.5}Menetelmä 8: Käännä useita sanakirjoja yhtenäcollections.ChainMap
Vaihe 1:Yhdistä useita kartoituksia yhdeksi sanakirjan kaltaiseksi näkymäksi.
from collections import ChainMap
defaults = {"color": "blue", "lang": "en"}
overrides = {"lang": "fr"}
cfg = ChainMap(overrides, defaults)
for k, v in cfg.items():
print(k, v) # lang fr | color blueVaihe 2:Lue avaimet ketjussa, kun päivitykset koskevat ensimmäistä kartoitusta; Katso käyttäytymisen ja menetelmien dokumentaatio.
Lue lisää:10 parasta ilmaista offline -sanakirjaohjelmistoa Windows PC: lle
Valitse työhön oikea silmukka
- Käyttää
items()käsitellä avaimia ja arvoja yhdessä. - Käyttää
values()vain arvolaskelmille. - Käytä avainkeskeiseen logiikkaan suoraa avain iteraatiota.
- Käyttää
sorted()Ennustettavissa oleva tilaus ja käännetty tilaus tarvittaessa. - Käytä tilannekuvaa tai
popitem()Välttää kokovaihtovirheet mutaation aikana.
Muutama pieni kuvio kattaa melkein kaikki tarpeet:items()pariksi käytettäväksi,sorted()tilaus-, tilannekuvia taipopitem()turvallista mutaatiota varten. Pidä silmukot keskittynyt yhteen tavoitteeseen, ja sanakirjakoodisi pysyy nopeasti ja helppo lukea.











