Seguramente la respuesta será muy sencilla, pero le doy vueltas y no veo la solución. Quizás, por utilizar en exceso las listas y dejar un poco de lado los diccionarios.
La idea es leer un archivo de texto donde hay datos. Estos datos se guardan en una lista:
Código Python:
Ver originallista = [5, 5, 5, 3, 6, 1, 5, 7, 1, 7, 5, 5, 3, 7, 6, 7, 2, 6, 1, 6]
Ahora creo un diccionario donde cada clave toma el valor hasta el máximo dato de la lista:
Código Python:
Ver original# generamos las claves de 1-7
dic = {}
for x in range(1, 8):
dic[x] = []
Código Python:
Ver originaldic
{1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: []}
Lo que yo quiero, es que al recorrer las claves del diccionario, cada valor se empareje con su clave. Y quede un dibujo asi:
Código Python:
Ver originaldic
{1: [1,1,1], 2: [2], 3: [3,3], 4: [], 5: [5,5,5,5,5,5], 6: [6,6,6,6], 7: [7,7,7,7]}
Se trata de rellenar cada clave con la cantidad de valores de la lista de su mismo número.
El cuerpo del for sería este:
Código Python:
Ver originalfor x in lista:
for j in dic.keys():
En este cuerpo se debería comprobar si x == j. De ser así, se añadiría al valor de su clave correspondiente. Si fuera una lista, lo tendria fácil con el método append. Pero al ser un valor de una clave, no se como añadir mas elementos dentro de esa misma clave.
Pero me he estancado. No puedo utilizar una lista en los valores. Ya que al ser por referencia, me cambia los valores de todas las claves.
Y si hago:
...no se como añadir mas elementos a la lista de cada clave.
¿Alguna ídea?
P.D. Tendré que usar mas los diccionarios...