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:value
pares 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'}