I have a list of tuples similar to this:
l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 0)]
I want to create a simple one-liner that will give me
I want to add something to the given answer:
If I have an array of dict e.g.
l = [{'quantity': 10, 'price': 5},{'quantity': 6, 'price': 15},{'quantity': 2, 'price': 3},{'quantity': 100, 'price': 2}]
and i want to obtain two (or more) sums of calculated quantity over the values e.g. sum of quantities and of price*quantity
I can do:
(total_quantity, total_price) = (
sum(x) for x in zip(*((item['quantity'],
item['price'] * item['quantity'])
for item in l)))
Instead of:
total_quantity = 0
total_price = 0
for item in l:
total_quantity += item['quantity']
total_price += item['price'] * item['quantity']
Maybe the first solution is less readable, but is more "pythonesque" :)