Python Convert List to Dictionary: A Complete Guide
Pythonin listan voi muuntaa sanakirjaksi käyttämällä sanakirjan ymmärtämistä, dict.fromkeys() tai zip()-metodia. Kaikki kolme metodia luovat uuden sanakirjan. Ne eivät muuta olemassa olevaa listaa.
Pythonin listat ja sanakirjat ovat kaksi rakennetta, joita käytetään tietojen tallentamiseen. Mutta entä jos haluat muuntaa listan sanakirjaksi? Voit tehdä näin, jos haluat antaa jokaiselle tallentamallesi arvolle yksilöllisen tunnisteen. Tämä on mahdollista vain sanakirjassa.
Pythonissa on muutamia tekniikoita ja sisäänrakennettuja funktioita, joita voit käyttää listan muuntamiseen sanakirjaksi. Tässä ohjelmointioppaassa käsitellään esimerkkien avulla, miten lista muunnetaan sanakirjaksi Pythonissa.
Pythonin listat ja sanakirjat
Listat ja sanakirjat ovat esimerkkejä Pythonin kokoelmista. Niiden avulla voit tallentaa useita samankaltaisia arvoja yhteen tietorakenteeseen.
takeout_prices =
Luettelomme nimeltä takeout_prices sisältää neljä arvoa.
Sanakirjat sen sijaan eivät ole järjestettyjä, eikä niihin voi tallentaa useita päällekkäisiä arvoja.
Tässä on esimerkki Python-sanakirjasta:
takeout_prices = {'single_chips': 2.50,'large_chips': 2.75,'single_fish': 4.50,'large_fish': 5.00}
Sanakirjat ovat käyttökelpoisia silloin, kun kuhunkin arvoon halutaan liittää tarrat. Luettelot ovat parempia, jos tallennat samankaltaista dataa, kuten hintojen tai nimien luettelon, jossa et voi merkitä jokaista arvoa.
Python muuntaa luettelon sanakirjaksi
Voit muuntaa Python-luettelon sanakirjaksi käyttämällä dict.fromkeys()-metodia, sanakirjan ymmärtämistä tai zip()-metodia. Zip()-metodi on hyödyllinen, jos haluat yhdistää kaksi listaa sanakirjaksi.
Kerrataanpa nopeasti nämä metodit:
- dict.fromkeys(): Käytetään sanakirjan luomiseen listasta. Voit valinnaisesti asettaa oletusarvon kaikille avaimille. Et voi asettaa yksittäisiä arvoja jokaiselle sanakirjan elementille.
- Sanakirjan ymmärtäminen: Luo uuden sanakirjan olemassa olevasta luettelosta. Voit määrittää eri arvot jokaiselle sanakirjan avaimelle. Sanakirjakäsittelyt ovat rakenteeltaan samanlaisia kuin Pythonin listakäsittelyt.
- zip(): Muuntaa kaksi tai useampia listoja tupleluetteloksi. Voit käyttää dict()-metodia muuntaa tupleluettelon sanakirjaksi.
Käytämme jokaista kolmesta yllä olevasta metodista havainnollistaaksemme, miten voimme muuntaa luettelon sanakirjaksi.
Python muuntaa luettelon sanakirjaksi: dict.fromkeys()
Esitettäkö, että meillä on hedelmäluettelo, jonka haluamme muuttaa sanakirjaksi. Jokaiselle hedelmälle annettavan arvon pitäisi olla Varastossa:
fruits =
Voisimme luoda tämän sanakirjan käyttämällä dict.fromkeys()-metodia. Tämä metodi hyväksyy luettelon avaimista, jotka haluat muuttaa sanakirjaksi. Valinnaisesti voit määrittää arvon, jonka haluat antaa jokaiselle avaimelle.
Kullekin avaimelle voi antaa vain yhden arvon. Et voi sanoa, että yhdelle avaimelle annetaan yksi arvo ja toiselle avaimelle toinen arvo.
Tehdään hedelmäluettelostamme sanakirja:
fruits = fruit_dictionary = dict.fromkeys(fruits, "In stock")print(fruit_dictionary)
Koodimme palauttaa tämän luettelon objektit sanakirjaobjektina:
{'Apple': 'In stock', 'Pear': 'In stock', 'Peach': 'In stock', 'Banana': 'In stock'}
Aluksi ilmoitamme Python-muuttujan nimeltä hedelmät (fruits), joka tallentaa niiden avainten nimet, joita haluamme käyttää sanakirjassamme.
Luomme dict.fromkeys()-olion avulla sanakirjan, joka käyttää hedelmät-määritykseen tallentamiamme avainten nimiä. Tämä metodi määrittää kunkin avaimen arvoksi In stock. Lopuksi tulostamme uuden sanakirjan konsoliin.
Jos emme olisi määrittäneet koodissamme arvoa Varastossa, sanakirjamme avainten oletusarvo olisi Ei mitään.
Muunnetaan lista sanakirjaksi Python: Sanakirjan ymmärtäminen
Voimmekin käyttää sanakirjan ymmärtämiseksi kutsuttua tekniikkaa muuntaa Python-luettelon sanakirjaksi samoja arvoja käyttäen.
Sanakirjan ymmärtäminen on samanlainen kuin luettelon ymmärtäminen siinä mielessä, että molemmat menetelmät luovat uuden oman tietotyyppinsä mukaisen arvon. Sanakirjan ymmärtämisessä käytetään teräväkärkisiä hakasulkeita ({}), kun taas luettelon ymmärtämisessä käytetään hakasulkeita ().
Muunnetaan hedelmäluettelomme sanakirjaksi käyttämällä sanakirjakäsittelyä:
fruits = fruit_dictionary = { fruit : "In stock" for fruit in fruits }print(fruit_dictionary)
Koodimme palauttaa:
{'Apple': 'In stock', 'Pear': 'In stock', 'Peach': 'In stock', 'Banana': 'In stock'}
Aluksi julistimme listan nimeltä hedelmät, johon tallennettiin nimet, jotka halusimme siirtää sanakirjaan.
Sitten käytimme sanakirjakäsittelyä käydessämme läpi jokaisen hedelmälistan kohdan. Lisäsimme uuteen sanakirjaamme kohteen jokaista listan hedelmää kohden. Arvo, jonka annoimme jokaiselle hedelmälle, oli Varastossa. Lopuksi tulostimme uuden sanakirjamme konsoliin.
Python Convert List to Dictionary: zip()
Viimeisessä esimerkissämme olemme muuttaneet yksittäisen listan sanakirjaksi ja antaneet jokaiselle sanakirjan kohteelle oletusarvon. On kuitenkin mahdollista muuntaa kaksi listaa sanakirjaksi.
Tehdäksemme tämän voimme käyttää Pythonin zip()-funktiota. Tämän funktion avulla voimme yhdistää kaksi listaa toisiinsa. Voimme käyttää toista listaa sanakirjan avaimina ja toista arvoina.
Esitellään, että meillä on kaksi listaa: toinen sisältää luettelon hedelmistä ja toinen sisältää yksittäisen hedelmän hinnan. Haluamme luoda yhden sanakirjan, joka tallentaa hedelmän nimen sekä sen hinnan. Voimme käyttää seuraavaa koodia tämän tehtävän suorittamiseen:
fruits = prices = fruit_dictionary = dict(zip(fruits, prices))print(fruit_dictionary)
Koodimme palauttaa:
{'Apple': 0.35, 'Pear': 0.4, 'Peach': 0.4, 'Banana': 0.28}
Aluksi olemme määritelleet kaksi listaa: listan hedelmistä ja listan hinnoista. Sitten olemme käyttäneet zip()-funktiota kahden luettelon yhdistämiseen. Funktio zip() palauttaa yhdistettyjen tuplien luettelon. Koska haluamme sanakirjan, olemme käyttäneet dict()-funktiota muuttaaksemme tuplat sanakirjaksi.
Seuraavaksi tulostimme uuden sanakirjamme sisällön konsoliin.
Johtopäätös
Kun haluat muuntaa luettelon sanakirjaksi käyttäen samoja arvoja, voit käyttää dict.fromkeys()-metodia. Jos haluat muuntaa kaksi listaa yhdeksi sanakirjaksi, voit käyttää Pythonin zip()-funktiota. Sanakirjan ymmärtämisen avulla voit luoda uuden sanakirjan listan arvojen perusteella.
Tässä opetusohjelmassa näytimme esimerkkien avulla, miten voit käyttää kolmea lähestymistapaa listan muuntamiseen sanakirjaksi Pythonissa. Nyt olet valmis aloittamaan Python-listojen muuntamisen sanakirjoiksi kuin ammattimainen ohjelmoija!