dict.fromkeys() în Python

Creează un dicționar nou cu cheile date, toate având aceeași valoare.

Sintaxă
dict.fromkeys(chei, valoare=None)

Ce face dict.fromkeys()

dict.fromkeys(chei, v) se apelează pe clasă și creează un dicționar în care fiecare cheie primește valoarea v (implicit None).

Este și un truc des folosit pentru a elimina duplicatele dintr-o listă păstrând ordinea: list(dict.fromkeys(lista)).

Parametri

Parametru Descriere
chei Colecția de chei.
valoare Opțional. Valoarea comună.

Ce returnează

Un dicționar nou.

Exemple

Exemplul 1: Inițializare și eliminarea duplicatelor

prezenta = dict.fromkeys(["Ana", "Dan", "Ioana"], False)
print(prezenta)
orase = ["Iași", "Cluj", "Iași", "Arad", "Cluj"]
print(list(dict.fromkeys(orase)))

Rezultat

{'Ana': False, 'Dan': False, 'Ioana': False}
['Iași', 'Cluj', 'Arad']

Exemplul 2: Capcana valorii comune modificabile

grupuri = dict.fromkeys(["a", "b"], [])
grupuri["a"].append(1)
print(grupuri)
corect = {cheie: [] for cheie in ["a", "b"]}
corect["a"].append(1)
print(corect)

Rezultat

{'a': [1], 'b': [1]}
{'a': [1], 'b': []}

Greșeli frecvente

  • Dai o listă ca valoare: toate cheile împart aceeași listă. Folosește o comprehension: {k: [] for k in chei}.

Comenzi înrudite

  • dict (dicționare): Dicționarul păstrează perechi cheie: valoare și găsește rapid valoarea după cheie.
  • set (mulțimi): Mulțimea este o colecție fără duplicate și fără ordine, utilă pentru valori unice și operații de reuniune sau intersecție.
  • List comprehension: Construiește o listă nouă dintr-o altă colecție, într-un singur rând.