Из этого примера списка карт;
def Assets = [
[year: 2018, valueA:10, value:15],
[year: 2018, valueA:15, value:25],
[year: 2019, valueA:11, value:35],
[year: 2020, valueA:17, value:2],
[year: 2020, valueA:18, value:5],
[year: 2021, valueA:10, value:25],
[year: 2018, valueA:15, value:20]
]
Я хочу создать сводный список, который включает в себя только уникальные годы и усредняет значения за равные годы, т.е. производит этот результат;
SummaryAssets = [
[year: 2018, valueA:13, value:20],
[year: 2019, valueA:11, value:35],
[year: 2020, valueA:18, value:4],
[year: 2021, valueA:10, value:25]
]
Единственный способ, которым я могу подумать, - это сначала найти и создать список уникальных лет.Затем на основе этих лет:
- Подсчет количества экземпляров каждого уникального года
- Суммарное значение A для каждого экземпляра года
- Суммарное значение B для каждого экземплярагод
- Разделите каждую сумму на количество повторных экземпляров
- Запишите результаты в новый список SummaryAssets
Это кажется громоздким.Есть ли более отличный способ сделать это?Спасибо.