Нужно получить результирующий набор продуктов без этого продукта

Рейтинг: 0Ответов: 1Опубликовано: 21.07.2023

в двух наборах присутствует одинаковый набор продуктов, как реализовать результирующий набор без этого продукта вот код

def __sub__(self, other):
    if isinstance(other, int):
        return Products(self.products, self.bonuses - other)
    elif isinstance(other, Products):
        new_products = {}
        for key in self.products:
            if key in other.products:
                pass
            for product, price in self.products.items():
                if product not in new_products:
                    new_products[product] = price
            for product, price in other.products.items():
                if product not in new_products:
                    new_products[product] = price
            return Products(new_products)
        return new_products

Ответы

▲ 0Принят

Если я правильно понял задачу:

def __sub__(self, other):
  # Объявляем выходной массив
  result = {}

  # Перебираем продукты из исходного массива
  for product, price in self.products.items():
    # Проверяем что продукта нет в дополняющем массиве
    if product not in other.products:
      result[product] = price

  # Перебираем продукты из дополняющего массива
  for product, price in other.products.items():
    # Проверяем что продукта нет в исходном массиве
    if product not in self.products:
      result[product] = price

  # Возвращаем новый объект [Products] с данными из обоих массивов
  return Products(result)