Python - ayuda diccionario

 
Vista:
sin imagen de perfil

ayuda diccionario

Publicado por karen (1 intervención) el 28/10/2017 17:56:35
Hola necesito ayuda, tengo este módulo diccionario:

X={’Carnes’:{’Vacuno’:55,’Pollo’:45,’Cerdo’:30},’Galletas’:{’Rellenas’:25,’Mantequilla’:
40,’Limon’:10, ’Chocolate’:30},’Frituras’:{’Papas Fritas’: 30, ’Doritos’: 23, ’Ramitas’: 15},’Bebidas’:
{’Coca Cola’: 25, ’Sprite’: 25, ’Fanta’: 25}}

y me dan este otro el cual representa un supermercado...

/"elementos comprados "/ L=[’Chocolate’,10,’Doritos’,5,’Fanta’,40]
Donde en las posiciones impares de la lista esta el elemento comprado y en la posici´on
par siguiente, la cantidad del elemento comprado.

Necesito crear una funcion "Compras(X, L):
que recibe la despensa (X) y la lista(L) con los elementos
comprados en el supermercado, la cual agregue todo lo comprado a la despensa(X)
(diccionario).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de abzerox
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

ayuda diccionario

Publicado por abzerox (109 intervenciones) el 29/10/2017 02:31:56
Hola, hice un pequeño código quizas te sirva:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
 
x = {
    'Carnes': {
        'Vacuno': 55,
        'Pollo': 45,
        'Cerdo': 30
    },
    'Galletas': {
        'Rellenas': 25,
        'Mantequilla': 40,
        'Limon': 10,
        'Chocolate': 30
    },
    'Frituras': {
        'Papas Fritas': 30,
        'Doritos': 23,
        'Ramitas': 15
    },
    'Bebidas': {
        'Coca Cola': 25,
        'Sprite': 25,
        'Fanta': 25
    }
}
 
l = ['Chocolate', 10, 'Doritos', 5, 'Fanta', 40]
 
 
def en_despensa(despensa, producto):
    for item in despensa:
        if producto in despensa[item]:
            return item
    return False
 
 
def compras(x, l):
    producto = [v for i, v in enumerate(l) if i % 2 == 0]
    cantidad = [v for i, v in enumerate(l) if i % 2 != 0]
 
    for p, c in list(zip(producto, cantidad)):
        item = en_despensa(x, p)
        if item:
            x[item][p] += c
    return x
 
 
print(compras(x, l))

Nos comentas.
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

ayuda diccionario

Publicado por Maria (3 intervenciones) el 29/10/2017 22:45:53
Hola muchas gracias! me servirá muchisimo ya que puedo utilizarlo como guia :)
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