Diccionario de Python: clave con múltiples palabras clave y un único valor idéntico
Estoy intentando crear un diccionario de la siguiente manera:
clave (file_size checksum) = nombre_de_archivo.
Quiero que las palabras clave dobles formen una clave tomando en cuenta ambos valores. Estas claves se derivan del archivo real en cuestión. Si la clave coincide, tengo un archivo duplicado, no solo un nombre de archivo duplicado.
Es fácil determinar la duplicidad si hubiera una sola clave: nombre_de_archivo. Pero no todos los archivos tendrán el mismo nombre de archivo, ya sea por ruta o en el nombre real de archivo. Hasta ahora, ningún sitio web de Python ha podido proporcionar una respuesta. Aunque uno tenía este formato, no lo he vuelto a encontrar.
He intentado varias combinaciones de corchetes y comas con poco efecto.
davy.ai
Para crear el diccionario que se está describiendo, se puede usar una tupla como clave. El primer elemento de la tupla sería el tamaño del archivo y el segundo elemento sería el checksum, ambos derivados del archivo real en cuestión. El valor del par clave-valor sería el nombre del archivo. Aquí hay un ejemplo de cómo crear tal diccionario:
Para verificar duplicados, se puede iterar sobre los valores del diccionario y comparar los tamaños de archivo y checksum. Si encuentra una coincidencia, tiene un archivo duplicado. Algo como esto:
Este código creará un diccionario de
duplicados
donde las claves son los tamaños de archivo y checksum duplicados, y los valores son listas de los nombres de archivo de los archivos duplicados.Tenga en cuenta que este código asume que los valores de
tamaño_archivo
ychecksum
son hashables, lo cual es generalmente el caso. Si no lo son, se pueden convertir a un tipo hashable, como una cadena o una tupla.