Python | Maneras de crear un diccionario de Listas

Hasta ahora, hemos visto las formas de crear un diccionario de múltiples maneras y diferentes operaciones en la clave y los valores en el diccionario . Ahora, veamos diferentes formas de crear un diccionario de lista.

Tenga en cuenta que la restricción con las claves en el diccionario de Python es que solo los tipos de datos inmutables se pueden usar como claves, lo que significa que no podemos usar un diccionario de lista como un archivo key.

# Creating a dictionary
myDict = {[1, 2]: 'Geeks'}
  
print(myDict)

Producción:

TypeError: unhashable type: 'list'

Pero lo mismo se puede hacer muy sabiamente con el values diccionario. Veamos todas las diferentes formas en que podemos crear un diccionario de Listas.

Método #1: Usar subíndice

# Creating an empty dictionary
myDict = {}
  
# Adding list as value
myDict["key1"] = [1, 2]
myDict["key2"] = ["Geeks", "For", "Geeks"] 
  
print(myDict)

Producción:

{'key2': ['Geeks', 'For', 'Geeks'], 'key1': [1, 2]}

 
Método #2: agregar una lista anidada como valor usando el método append().

Cree una nueva lista y simplemente podemos agregar esa lista al valor.

# Creating an empty dictionary
myDict = {}
  
# Adding list as value
myDict["key1"] = [1, 2]
  
# creating a list
lst = ['Geeks', 'For', 'Geeks']
  
# Adding this list as sublist in myDict
myDict["key1"].append(lst)
  
print(myDict)

Producción:

{'key1': [1, 2, ['Geeks', 'For', 'Geeks']]}

 
Método #3: Usar el setdefault()método

Repita la lista y siga agregando los elementos hasta el rango dado usando el setdefault()método.

# Creating an empty dict
myDict = dict()
  
# Creating a list
valList = ['1', '2', '3']
  
# Iterating the elements in list
for val in valList:
    for ele in range(int(val), int(val) + 2): 
        myDict.setdefault(ele, []).append(val)
  
print(myDict)

Producción:

{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}

 
Método #4: Usar la comprensión de listas

# Creating a dictionary of lists
# using list comprehension
d = dict((val, range(int(val), int(val) + 2))
                  for val in ['1', '2', '3'])
  
print(d)

Producción:

{'1': [1, 2], '3': [3, 4], '2': [2, 3]}

 
Método #5: Usando defaultdict

Tenga en cuenta que lo mismo también se puede hacer con un diccionario simple, pero el uso defaultdict es más eficiente para tales casos.

# Importing defaultdict
from collections import defaultdict
  
lst = [('Geeks', 1), ('For', 2), ('Geeks', 3)]
orDict = defaultdict(list)
  
# iterating over list of tuples
for key, val in lst:
    orDict[key].append(val)
  
print(orDict)

Producción:

defaultdict(, {'For': [2], 'Geeks': [1, 3]})

Tenga en cuenta que solo hay dos key:valuepares en el diccionario de salida, pero la lista de entrada contiene tres tuplas. El primer elemento (es decir, key) es el mismo para la primera y la tercera tupla y dos claves nunca pueden ser iguales.
 
Método #6: Usar Json

#importing json
import json
  
#Initialisation of list
lst = [('Geeks', 1), ('For', 2), ('Geeks', 3)]
  
#Initialisation of dictionary
dict = {}
  
#using json.dump()
hash = json.dumps(lst)
  
#creating a hash
dict[hash] = "converted"
  
#Printing dictionary
print(dict)
  
#Added by Paras Jain(everythingispossible)

Producción:

{'[["Geeks", 1], ["For", 2], ["Geeks", 3]]': 'converted'}

Publicación traducida automáticamente

Artículo escrito por Shivam_k y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *