Каждому объекту из первого списка сопоставьте объект из второго списка по условию равенства значений атрибутов. ⇐ Python
Каждому объекту из первого списка сопоставьте объект из второго списка по условию равенства значений атрибутов.
Представьте, что у нас есть конечное число районов с конечным количеством домов в каждом из них. Каждый дом имеет номер, а дома в каждом районе нумеруются с 1. В каждом доме живут один мужчина и одна женщина.
У нас есть следующий класс для представителей:
класс Человек: def __init__(я, имя, возраст, район, номер дома): self.name = имя self.age = возраст self.district = район self.номер_дома = номер_дома И у нас есть два списка с объектами этого класса, которые называются men и women. Чтобы понять структуру списков, ниже приведен пример добавления объекта в список.
men.append(Person("Алекс", 22, "Район 7", 71)) Считается, что списки уже заполнены объектами. Итак, у нас есть все мужчины в списке men и все женщины в списке women. Поскольку имеется конечное число районов, конечное число домов в каждом из них и в каждом доме проживает один мужчина и одна женщина, то длины списков равны. Объекты в обоих списках рандомизированы.
Предполагается, что объем данных очень велик.
Цель задачи — найти всех мужчин старше определенного возраста (переменная min_age) в списке men и сопоставить каждого из них с женщиной из списка женщины перечисляют тех, кто живет с ним в одном доме.
Все найденные мужчины должны находиться в списке men_new, а женщины — в списке women_new. Списки должны быть сопоставимы, поэтому мужчина и женщина, живущие в одном доме, должны иметь одинаковый индекс в списках men_new и women_new.
Теперь у меня есть следующее решение:
# Мы считаем, что списки «мужчины», «женщины» и переменная «min_age» определены заранее. men_new = [] женщины_новый = [] для мужчины у мужчин: если man.age > min_age: men_new.append(мужчина) для мужчины в men_new: Women_new.append(filter(lambda x: x.district == man.district и x.house_number == man.house_number, женщины) Это решение отлично работает, но очень медленно при работе с большими объемами данных. Есть ли способы решить эту проблему быстрее? Заранее спасибо!
Представьте, что у нас есть конечное число районов с конечным количеством домов в каждом из них. Каждый дом имеет номер, а дома в каждом районе нумеруются с 1. В каждом доме живут один мужчина и одна женщина.
У нас есть следующий класс для представителей:
класс Человек: def __init__(я, имя, возраст, район, номер дома): self.name = имя self.age = возраст self.district = район self.номер_дома = номер_дома И у нас есть два списка с объектами этого класса, которые называются men и women. Чтобы понять структуру списков, ниже приведен пример добавления объекта в список.
men.append(Person("Алекс", 22, "Район 7", 71)) Считается, что списки уже заполнены объектами. Итак, у нас есть все мужчины в списке men и все женщины в списке women. Поскольку имеется конечное число районов, конечное число домов в каждом из них и в каждом доме проживает один мужчина и одна женщина, то длины списков равны. Объекты в обоих списках рандомизированы.
Предполагается, что объем данных очень велик.
Цель задачи — найти всех мужчин старше определенного возраста (переменная min_age) в списке men и сопоставить каждого из них с женщиной из списка женщины перечисляют тех, кто живет с ним в одном доме.
Все найденные мужчины должны находиться в списке men_new, а женщины — в списке women_new. Списки должны быть сопоставимы, поэтому мужчина и женщина, живущие в одном доме, должны иметь одинаковый индекс в списках men_new и women_new.
Теперь у меня есть следующее решение:
# Мы считаем, что списки «мужчины», «женщины» и переменная «min_age» определены заранее. men_new = [] женщины_новый = [] для мужчины у мужчин: если man.age > min_age: men_new.append(мужчина) для мужчины в men_new: Women_new.append(filter(lambda x: x.district == man.district и x.house_number == man.house_number, женщины) Это решение отлично работает, но очень медленно при работе с большими объемами данных. Есть ли способы решить эту проблему быстрее? Заранее спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Добавьте новое свойство с динамическим значением к каждому объекту в массиве объектов.
Anonymous » » в форуме Php - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
MapStruct - сопоставляет одно свойство класса каждому объекту в списке другого класса.
Anonymous » » в форуме JAVA - 0 Ответы
- 93 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как разделиться на услуги по каждому объекту JPA или как Avoud Code дублирует?
Anonymous » » в форуме JAVA - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-