Taking this code, for example, can you explain why using a list comprehension when adding sum of integers in list took longer than using a normal for
loop?
class Store:
def __init__(self, name):
self.name = name
self.items = []
def add_items(self, name, price):
self.items.append({'name':name, 'price': price})
def stock_price(self):
return sum([item['price'] for item in self.items])
def stock_price2(self):
total = 0
for item in self.items:
total += item.get('price')
return total
store = Store("Jay")
store.add_items("nike", 100)
store.add_items('puma', 200)
print(timeit.Timer(lambda: store.stock_price()).timeit(number=1000))
print(timeit.Timer(lambda: store.stock_price2()).timeit(number=1000))
result of stock_price: 0.0007737720006844029
result of stock_price2: 0.0006722800026182085