Python - Ayuda con diccionarios

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con diccionarios

Publicado por felipe (4 intervenciones) el 08/05/2018 08:09:04
Hola, buenos días,tardes, noches por donde estén. Estaría enormemente agradecido si alguien me pudiese ayudar con un código (soy un asco en programación), el tema va así, se tiene la siguiente lista :

1
2
3
4
5
6
estafados = [
('12.234.567-8', 2000000, 'pelados_furiosos', (25, 5, 2015)),
('9.111.567-k', 5500000, 'multibank', (1, 10, 2014)),
('14.987.007-1', 100000000, 'inversiones_seguras', (30, 11, 2016)),
('12.234.567-8', 10000000, 'multibank', (2, 7, 2015)),
('12.234.567-8', 2500000, 'multibank', (18, 1, 2016))]
y necesito crear la funcion ranking(estafados), que recibe como parametro la lista de estafados y retorna un diccionario donde cada llave corresponde al nombre de una empresa, y el valor asociado a cada llave es la cantidad de dinero que cada empresa logro acumular.

>>> ranking(estafados)
>>> {'inversiones_seguras': 100000000, 'multibank': 18000000,
'pelados_furiosos': 2000000, ...}


**(este es el contexto del ejercicio)
Inversiones RCaray esta siendo investigada por una presunta estafa millonaria. Su presidente genero una asociacion ilıcita utilizando los dineros de cientos de personas durante los tres ultimos años por medio de varias empresas fantasma. Las investigaciones pudieron reunir una informacion parcial acerca de las personas y las sumas de dineros involucradas. La policıa ha recaudado esta informacion en una lista llamada ´ estafados, la que almacena tuplas de la forma (rut, deuda, empresa, fecha), donde rut esta en formato string, deuda en formato entero, empresa en formato string y fecha es una tupla (dd, mm, aaaa).


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con diccionarios

Publicado por algoritmo (245 intervenciones) el 08/05/2018 13:07:17
Espero que te sirva. Un saludo

1
2
3
4
5
6
7
8
9
dic = {}
 
for estafado in estafados:
    if estafado[2] in dic:
        dic[estafado[2]] += estafado[1]
    else:
        dic[estafado[2]] = estafado[1]
 
print dic
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con diccionarios

Publicado por felipe (4 intervenciones) el 09/05/2018 04:26:31
Muchas gracias, me sirvió muchísimo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con diccionarios

Publicado por xve (1646 intervenciones) el 08/05/2018 13:12:02
seria algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import operator
 
estafados = [
('12.234.567-8', 2000000, 'pelados_furiosos', (25, 5, 2015)),
('9.111.567-k', 5500000, 'multibank', (1, 10, 2014)),
('14.987.007-1', 100000000, 'inversiones_seguras', (30, 11, 2016)),
('12.234.567-8', 10000000, 'multibank', (2, 7, 2015)),
('12.234.567-8', 2500000, 'multibank', (18, 1, 2016))]
 
def ranking(estafados):
    resultado={}
    for value in estafados:
        if resultado.has_key(value[2]):
            resultado[value[2]]+=value[1]
        else:
            resultado[value[2]]=value[1]
    return sorted(resultado.items(), key=operator.itemgetter(0))
 
print(ranking(estafados))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar