Python: создание функции из словаря - PullRequest
0 голосов
/ 03 апреля 2011

Как создать функцию, которая вычисляет общее значение из 2 заданного словаря

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011

Если у вас есть данные в таком виде:

Part = collections.namedtuple('Part', 'key name price')
parts = {
    'WH239': Part('WH239', 'Mountain Bike Wheel', 5000),
    'TR202': Part('TR202', 'Mountain Bike Tire', 2000),
    'TU277': Part('TU277', 'Mountain Bike Tube', 2000),
    'FR201': Part('FR201', 'Mountain Bike Frame', 60000), 
}

Product = collections.namedtuple('Product', 'key name parts')
product = Product(
    'bike201', 
    'Mountain Bike', 
    [('WH239', 2), ('TR202', 2), ('TU277', 2), ('FR201', 1)]
)

, вы можете сделать что-то вроде этого:

product_price = sum(n*parts[part_name].price for part_name, n in product.parts)
0 голосов
/ 04 апреля 2011
>>> from collections import Counter
>>> d1 = dict(a=1, b=2)
>>> d2 = dict(a=2, b=1, c=3)
>>> c = Counter(**d1)
>>> c.update(**d2)
>>> c
Counter({'a': 3, 'c': 3, 'b': 3})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...