Python-woordenboek fromkeys ()

De fromkeys () - methode maakt een nieuw woordenboek aan uit de gegeven reeks elementen met een waarde die door de gebruiker is opgegeven.

De syntaxis van fromkeys()methode is:

 woordenboek.fromkeys (reeks (, waarde))

fromkeys () Parameters

fromkeys() methode heeft twee parameters:

  • opeenvolging - opeenvolging van elementen die als sleutels voor het nieuwe woordenboek moeten worden gebruikt
  • waarde (optioneel) - waarde die is ingesteld op elk element van het woordenboek

Retourwaarde van fromkeys ()

fromkeys() methode retourneert een nieuw woordenboek met de gegeven reeks elementen als de sleutels van het woordenboek.

Als het waarde-argument is ingesteld, wordt elk element van het nieuw gemaakte woordenboek ingesteld op de opgegeven waarde.

Voorbeeld 1: maak een woordenboek op basis van een reeks toetsen

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)

Uitvoer

 ('a': None, 'u': None, 'o': None, 'e': None, 'i': None) 

Voorbeeld 2: maak een woordenboek op basis van een reeks sleutels met waarde

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)

Uitvoer

 ('a': 'klinker', 'u': 'klinker', 'o': 'klinker', 'e': 'klinker', 'i': 'klinker') 

Voorbeeld 3: maak een woordenboek van de veranderlijke objectenlijst

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = dict.fromkeys(keys, value) print(vowels) # updating the value value.append(2) print(vowels)

Uitvoer

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1, 2 ), 'u': (1, 2), 'o': (1, 2), 'e': (1, 2), 'i': (1, 2)) 

Als waarde een veranderlijk object is (waarvan de waarde kan worden gewijzigd) zoals lijst, woordenboek, enz., Wordt elk element van de reeks ook bijgewerkt wanneer het veranderlijke object wordt gewijzigd.

Dit komt doordat aan elk element een verwijzing naar hetzelfde object is toegewezen (verwijst naar hetzelfde object in het geheugen).

Om dit probleem te voorkomen, gebruiken we woordenboekbegrip.

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = ( key : list(value) for key in keys ) # you can also use ( key : value(:) for key in keys ) print(vowels) # updating the value value.append(2) print(vowels)

Uitvoer

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) 

Hier wordt voor elke toets in toetsen een nieuwe lijst van waarde gemaakt en eraan toegewezen.

In wezen wordt er geen waarde aan het element toegewezen, maar wordt er een nieuwe lijst van gemaakt, die vervolgens aan elk element in het woordenboek wordt toegewezen.

Interessante artikelen...