Diccionario con varios valores en Python
- Utilice una función definida por el usuario para agregar varios valores a una clave en un diccionario
-
Utilice el módulo
defaultdict
para agregar varios valores a una clave en un diccionario -
Utilice el método
setdefault()
para agregar varios valores a una clave específica en un diccionario
Un diccionario en Python constituye un grupo de elementos en forma de pares clave-valor. Por lo general, tenemos valores únicos para una clave en un diccionario.
Sin embargo, podemos tener los valores de las claves como una colección, como una lista. De esta forma, podemos tener varios elementos en el diccionario para una clave específica.
Por ejemplo,
d = {"a": [1, 2], "b": [2, 3], "c": [4, 5]}
print(d)
Producción :
{'a': [1, 2], 'b': [2, 3], 'c': [4, 5]}
Este tutorial discutirá diferentes métodos para agregar múltiples valores como una lista en un diccionario en Python.
Utilice una función definida por el usuario para agregar varios valores a una clave en un diccionario
Podemos crear una función para agregar pares clave-valor en un diccionario, siendo el valor una lista.
Por ejemplo,
def dict1(sample_dict, key, list_of_values):
if key not in sample_dict:
sample_dict[key] = list()
sample_dict[key].extend(list_of_values)
return sample_dict
word_freq = {
"example": [1, 3, 4, 8, 10],
"for": [3, 10, 15, 7, 9],
"this": [5, 3, 7, 8, 1],
"tutorial": [2, 3, 5, 6, 11],
"python": [10, 3, 9, 8, 12],
}
word_freq = dict1(word_freq, "tutorial", [20, 21, 22])
print(word_freq)
Producción :
{'example': [1, 3, 4, 8, 10], 'for': [3, 10, 15, 7, 9], 'this': [5, 3, 7, 8, 1], 'tutorial': [2, 3, 5, 6, 11, 20, 21, 22], 'python': [10, 3, 9, 8, 12]}
Tenga en cuenta que, en el código anterior, hemos creado una función dict1
con sample_dict
, key
y list_of_values
como parámetros dentro de la función. La función extend()
agregará una lista como valor para una clave en el diccionario.
Utilice el módulo defaultdict
para agregar varios valores a una clave en un diccionario
defaultdict
es parte del módulo de colecciones. También es una subclase de la clase dict
que devuelve objetos similares a los de un diccionario. Para una clave que no existe, dará un valor predeterminado.
Tanto defaultdict
como dict
tienen la misma funcionalidad excepto que defaultdict
nunca genera un keyerror
.
Podemos usarlo para convertir una colección de tuplas en un diccionario. Especificaremos el valor predeterminado como una lista. Entonces, siempre que se encuentre la misma clave, agregará el valor como una lista.
Por ejemplo,
from collections import defaultdict
s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
d = defaultdict(list)
for k, v in s:
d[k].append(v)
sorted(d.items())
print(d)
Producción :
defaultdict(<class 'list'>,
{'rome': [1],
'paris': [2, 4],
'newyork': [3],
'delhi': [1]
})
Utilice el método setdefault()
para agregar varios valores a una clave específica en un diccionario
El método setdefault()
se utiliza para establecer valores predeterminados para la clave. Cuando la clave está presente, devuelve algún valor. De lo contrario, inserta la clave con un valor predeterminado. El valor predeterminado de la clave es ninguno.
Agregaremos la lista como valores para las claves usando este método.
Por ejemplo,
s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
data_dict = {}
for x in s:
data_dict.setdefault(x[0], []).append(x[1])
print(data_dict)
Producción :
{'rome': [1], 'paris': [2, 4], 'newyork': [3], 'delhi': [1]}
Artículo relacionado - Python Dictionary
- Cómo comprobar si existe una clave en un diccionario en Python
- Convertir un diccionario en una lista en Python
- Cómo obtener todos los archivos de un directorio
- Cómo encontrar el valor máximo en el Diccionario Python
- Cómo ordenar un diccionario Python por valor
- Cómo fusionar dos diccionarios en Python 2 y 3