Invertir diccionarios con valores de lista: una solución
En este artículo, exploramos el desafío de invertir un diccionario con valores de lista. Dado un diccionario de índice donde las claves son nombres de archivos y los valores son listas de palabras que aparecen en esos archivos, nuestro objetivo es crear un diccionario invertido donde las palabras son claves y los valores son listas de nombres de archivos.
La función de inversión proporcionada, invert_dict, no es aplicable a diccionarios con valores de lista como claves, ya que falla con un "TypeError: tipo no hashable: 'lista'". Esta limitación se debe al hecho de que las claves en los diccionarios deben ser hash, y las listas no son hash.
Para superar este obstáculo, podemos utilizar un enfoque personalizado que recorre en iteración el diccionario original y crea un nuevo diccionario usando setdefault. . Específicamente, recorremos las listas de valores de cada clave en el diccionario original y agregamos las claves correspondientes como valores para esas palabras en el nuevo diccionario invertido.
Aquí hay un ejemplo de implementación de este enfoque:
inverse = {}
for k,v in index.items():
for x in v:
inverse.setdefault(x, []).append(k)
Esta solución maneja valores de lista en el diccionario original utilizando el método setdefault para crear una nueva lista si la clave no existe en el diccionario invertido. o agregarlo a una lista existente si la clave ya está presente.
Como resultado, obtenemos un diccionario invertido donde las palabras son claves y los valores son listas de nombres de archivos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3