English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de Python

Control de flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de archivo de Python

Objetos y clases de Python

Fecha y hora de Python

Conocimientos avanzados de Python

Manual de referencia de Python

Uso y ejemplo de fromkeys() en el diccionario de Python

Python dictionary methods

El método fromkeys() crea un nuevo diccionario basado en la secuencia de elementos dados, que tiene los valores proporcionados por el usuario.

La sintaxis del método fromkeys() es:

dictionary.fromkeys(sequence[, value])

Parámetros de fromkeys()

El método fromkeys() toma dos parámetros:

  • sequence -La secuencia de elementos utilizados como claves del nuevo diccionario

  • value (opcional) -El valor establecido para cada elemento del diccionario

El valor devuelto de fromkeys()

El método fromkeys() devuelve un nuevo diccionario que tiene la secuencia de elementos dados como claves del diccionario.

If the value parameter is set, each element of the newly created dictionary will be set to the provided value.

Example1: Create a dictionary based on the sequence of keys

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

When running the program, the output is:

{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}

Example2: Create a dictionary based on the sequence of keys with values

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

When running the program, the output is:

{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}

Example3: Create a dictionary from a list of mutable objects

# Vowel keys
keys = {'a', 'e', 'i', 'o', 'u'}
value = [1]
vowels = dict.fromkeys(keys, value)
print(vowels)
# Updated value
value.append(2)
print(vowels)

When running the program, the output is:

{'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}]

If the provided value is a mutable object (whose value can be changed), such aslist,dictionaryIf, etc., when a mutable object is modified, each element in the sequence will also be updated.

This is because, for each element, a reference to the same object (pointing to the same object in memory) is assigned.

To avoid this problem, we use dictionary comprehension.

# Vowel 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)
# Updated value
value.append(2)
print(vowels)

When running the program, the output is:

{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1}]
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1}]

Here, for each key in keys, a new list is created from value and assigned to it.

In essence, value is not assigned to the element, but a new list is created from it, and then it is assigned to each element in the dictionary.

Python dictionary methods