Претворите листу у речник у Питхон-у

Prebacivanje liste u rečnik u Pajtonu nije komplikovan zadatak.

Istražimo različite tehnike za transformaciju liste u rečnik.

Uvod

Pre nego što krenemo sa uputstvima, pogledajmo kako se lista može konvertovati u rečnik. Imaćemo listu torki (svaka torka se sastoji od dva elementa) ili jednostavnu listu elemenata. Obradićemo oba slučaja i prebaciti ih u rečnike.

Primeri:

U prvom primeru, uzimamo listu torki i pretvaramo je u rečnik. Prvi element svake torke koristi se kao ključ, dok je drugi element vrednost u rečniku.

Ulaz: lista_jedan = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]

Izlaz: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}

U drugom primeru, uzimamo običnu listu elemenata i formiramo rečnik tako što naizmenično koristimo elemente kao ključeve i vrednosti. Ako u listi ostane neparan broj elemenata, poslednjem ključu dodeljujemo vrednost null (None).

Ulaz: lista_jedan = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]

Izlaz:{‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: None}

Sada kada smo razjasnili cilj, detaljnije ćemo razmotriti ove primere. Krenimo prvo sa obradom liste torki.

Lista torki u rečnik

Pogledajmo kako se lista torki konvertuje u rečnik. Možete pratiti ove korake za implementaciju koda:

  • Inicijalizujte listu torki sa uzorkom podataka kao što je prikazano u prethodnim primerima (vodite računa da svaka torka u listi ima tačno dva elementa).
  • Prosledite listu torki metodi dict, koja će sačuvati rezultat u novu promenljivu.
  • To je to, konvertovali ste listu torki u rečnik u jednom redu koda.
# lista torki
lista_torki = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# konverzija u rečnik
recnik_iz_torki = dict(lista_torki)

# prikazivanje rezultujućeg rečnika
print(recnik_iz_torki)

Pokretanjem gornjeg programa možete testirati izlaz. Trebalo bi da dobijete rezultat kakav je prikazan u primerima.

Obična lista u rečnik

Već smo videli kako se lista torki lako transformiše u rečnik u Pajtonu. U ovom odeljku ćemo obraditi konverziju obične liste u rečnik.

Pogledajte drugi primer iz prvog dela tutorijala radi bolje jasnoće.

Pratite korake ispod da biste napisali kod za ovaj drugi primer.

Postavićemo podrazumevanu vrednost na None za element koji nema odgovarajuću vrednost (u slučaju liste sa neparnim brojem elemenata). Za to koristimo metod `zip_longest` iz modula `itertools`.

  • Uvezite modul `itertools` i inicijalizujte listu sa neparnim brojem elemenata, kao u primerima.
  • Pretvorite listu u iterabilni objekat kako biste sprečili ponavljanje parova ključ-vrednost u metodi `zip_longest`.
  • Zatim, prosledite iterabilne objekte metodi `zip_longest` uz `fillvalue` postavljen na None. Metod će vratiti zip objekat.
    • Iterabilni objekat moramo proslediti dva puta jer `zip_longest` uzima ključ i vrednost iz dva iterabilna objekta. U našem slučaju, i ključevi i vrednosti su u istom iterabilnom objektu. Stoga, prosleđujemo ga dva puta pre `fillvalue`.
  • Konvertujte dobijeni objekat u Pajton rečnik koristeći metod `dict`.
  • Odštampajte rezultat.
# uvoz modula
import itertools

# obična lista sa neparnim brojem elemenata
obicna_lista = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# pretvaranje u iterabilni objekat radi izbegavanja ponavljanja
iterator_liste = iter(obicna_lista)

# konverzija obične liste u rečnik
objekat_recnika_iz_liste = itertools.zip_longest(iterator_liste, iterator_liste, fillvalue=None)

# konverzija zip_longest objekta u rečnik pomoću 'dict'
recnik_iz_liste = dict(objekat_recnika_iz_liste)

# prikaz rezultata
print(recnik_iz_liste)

Za `fillvalue` možete postaviti bilo koju vrednost. Eksperimentišite i vidite da li dobijate očekivani rezultat.

Zaključak

Nadam se da ste uživali u učenju o konverziji liste u rečnik. Vidimo se u sledećem tutorijalu.

Sledeće, naučite kako da izravnate listu u Pajtonu.

Srećno kodiranje 🙂

Da li ste uživali čitajući ovaj članak? Podelite ga sa drugima!