Python. Создание списка объединенных объектов на основе одного или нескольких атрибутов

1

Я пытаюсь реализовать функцию JOIN для списка объектов. У меня есть список таких объектов:

class Item(object):
    def __init__(self):
        self.RegionId
        self.ItemId
        self.Price

Основываясь на этом списке, я бы хотел создать объединенный объект, который объединяет цены для двух данных регионов на основе ItemId. Объект результата должен выглядеть следующим образом:

class ItemInRegions(object):
    def __init__(self):
        self.ItemId
        self.PriceInRegion1
        self.PriceInRegion2

Я реализовал цикл FOR, но для выполнения каждого отдельного объекта в списке требуется очень много двух повторений.

Я уверен, что Python должен иметь быстрый и эффективный способ присоединиться к идентичным спискам объектов. Фактически я ищу решение Python, которое имитирует запрос INNER JOIN SQL:

SELECT i1.id, i1.Price,i2.Price 
FROM ItemList i1
INNER JOIN ItemList i2 on i1.ItemId=i2.ItemId and i1.Region='Region1' and i2.Region='Region2'

где ItemList представляет список объектов Item

Теги:

1 ответ

1

Я чувствую, что это больше проблема архитектуры.

Item должен содержать Region который также должен быть объектом. таким образом, вы можете получить цены на основе этого региона.

  • 0
    Объект item содержит RegionId. Я могу извлечь цену для каждого Предмета и Регионов, но использование цикла FOR кажется неэффективным способом сделать это.
  • 0
    Это неэффективно в том смысле, что вы не используете правильный инструмент для достижения желаемого. Я думал, что вы хотели бы иметь товары со связанным регионом, которые также имели цены, связанные с ними, отсюда мое предложение. Возможно, правда в том, что вы моделируете сценарий использования базы данных для ООП, который не всегда оптимален.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню