0
0 комментариев

Есть такой список, содержащий словари:

list_param = [{'company': 'Apple', 'tariff_rate': Decimal('3.00')}, {'company': 'Apple', 'tariff_rate': Decimal('4.00')}, {'company': 'Apple', 'tariff_rate': Decimal('3.00')}]

Причем, компаний может быть много разных, нужно для одинаковых найти наибольший коэффициент.

Имею следующее:

 def comparison_rate(d, x):
    k = x['company']
    if k in d:
        d[k]['tariff_rate'] = max(x['tariff_rate'] for k in d)
    else:
        d[k] = x
    return d
 
tariff = reduce(comparison_rate, list_param, {}).values()

Отдает просто самый последний словарь, в данном случае с коэффициентом 3.0

print(tariff)
[{'tariff_rate': Decimal('3.00'), 'company': 'Apple'}]

Python 3.5. Заранее спасибо.


Добавить комментарий