72 lines
2.4 KiB
Python
72 lines
2.4 KiB
Python
class ShoppingList(dict):
|
|
def __init__(self, data):
|
|
return super().__init__(data)
|
|
|
|
def multiply(self, k: float):
|
|
new_ingredients = self.copy()
|
|
for key,value in new_ingredients.items():
|
|
new_ingredients[key] = value * k
|
|
return new_ingredients
|
|
|
|
def add(self, ingredients: dict):
|
|
new_ingredients = self.copy()
|
|
for key1,value1 in self.items():
|
|
for key2,value2 in ingredients.items():
|
|
if key1 == key2:
|
|
new_ingredients[key1] = value1 + value2
|
|
elif key2 not in new_ingredients:
|
|
new_ingredients.update({key2: value2})
|
|
return new_ingredients
|
|
|
|
def __add__(self, other):
|
|
new_list = self.copy()
|
|
for key1,value1 in self.items():
|
|
for key2,value2 in other.items():
|
|
if key1 == key2:
|
|
new_list[key1] = value1 + value2
|
|
break
|
|
elif key2 not in new_list:
|
|
new_list.update({key2: value2})
|
|
return new_list
|
|
|
|
def __mul__(self, other):
|
|
new_list = self.copy()
|
|
for key1,value1 in self.items():
|
|
for key2,value2 in other.items():
|
|
if key1 == key2:
|
|
new_list[key1] = value1 * value2
|
|
break
|
|
elif key2 not in new_list:
|
|
new_list.update({key2: value2})
|
|
return new_list
|
|
|
|
def multiply_ingredients(ingredients: dict, k: float) -> dict:
|
|
new_ingredients = ingredients.copy()
|
|
for key,value in new_ingredients.items():
|
|
new_ingredients[key] = value * k
|
|
return new_ingredients
|
|
|
|
|
|
def add_ingredients(ingredients1: dict, ingredients2: dict) -> dict:
|
|
new_ingredients = ingredients1.copy()
|
|
for key1,value1 in ingredients1.items():
|
|
for key2,value2 in ingredients2.items():
|
|
if key1 == key2:
|
|
new_ingredients[key1] = value1 + value2
|
|
elif key2 not in new_ingredients:
|
|
new_ingredients.update({key2: value2})
|
|
return new_ingredients
|
|
|
|
|
|
soup = {'onion': 1, 'potato': 2, 'water': 2.5, 'meat': 0.5}
|
|
salad = {'potato': 2, 'meat': 0.3, 'mayonaise': 0.1, 'peas': 200}
|
|
#soup + 2 * salad # словари так не умеют :(
|
|
|
|
new_soup = ShoppingList(soup)
|
|
new_salad = ShoppingList(salad)
|
|
|
|
print(new_soup + new_salad)
|
|
print(new_soup * new_salad)
|
|
print(new_soup.add(new_salad))
|
|
print(add_ingredients(soup, salad))
|