Tengo un archivo enorme (con aproximadamente 200k de entradas). Las entradas están en la forma:Crear un diccionario con una lista de listas en Python
A B C D
B E F
C A B D
D
Estoy leyendo este archivo y almacenarlo en una lista de la siguiente manera:
text = f.read().split('\n')
Esto divide el archivo cada vez que ve una nueva línea. De ahí que el texto es como sigue:
[[A B C D] [B E F] [C A B D] [D]]
tengo para almacenar ahora estos valores en un diccionario donde los valores clave son el primer elemento de cada lista. es decir, las claves serán A, B, C, D. Me resulta difícil introducir los valores como los elementos restantes de la lista. es decir el diccionario debe verse como:
{A: [B C D]; B: [E F]; C: [A B D]; D: []}
he hecho lo siguiente:
inlinkDict = {}
for doc in text:
adoc= doc.split(' ')
docid = adoc[0]
inlinkDict[docid] = inlinkDict.get(docid,0) + {I do not understand what to put in here}
Por favor, ayudar en cuanto a cómo debo añadir los valores de mi diccionario. Debería ser 0 si no hay elementos en la lista, excepto el que será el valor clave. Al igual que en el ejemplo de 0.
¿Quiere el diccionario estar '{A: [B, C, D]; B: [E, F]; C: [A, B, D]; D: []} '? O tal vez '{A:" B C D "; B: "E F"; C: "A B D"; D: 0} '? – huon
Por favor edite su pregunta para decir lo que quiere hacer con las llaves duplicadas; Por ejemplo, ¿qué pasa si tienes una 5ª línea que contiene 'A P Q R'? ¿Cómo desea almacenar los valores B C D ... como una lista '['B', 'C', 'D']'?Si es mucho mejor representar el caso de una lista vacía como una lista vacía '[]', no como un número entero '0'. –
@JohnMachin: no hay valores duplicados. Y sí, almacenar valores como una lista definitivamente ayudará. Editaré mi pregunta. – Nerd