Каков наилучший способ группировки/объединения/сокращения кортежей python следующим образом (без использования вложенных циклов).Как группировать/суммировать/уменьшать третьи значения списка/кортежа python по первым двум значениям (без использования для циклов)?
К примеру, учитывая следующие кортежи:
entry1 = ('name1', 'surname1', 'product1')
entry2 = ('name1', 'surname1', 'product2')
entry3 = ('name1', 'surname1', 'product3')
entry4 = ('name2', 'surname2', 'product1')
entry5 = ('name2', 'surname2', 'product2')
entry6 = ('name2', 'surname2', 'product3')
Как может функция func
:
func(entry1, entry2, entry3, entry4, entry5, entry6)
возвращение данные в том же формате:
(('name1', 'surname1', ('product1', 'product2', 'product3')),
('name2', 'surname2', ('product1', 'product2', 'product3')))
Примечания:
- Порядок получения результатов не имеет значения.
- Результатом может быть список или кортеж
- Обеспечение уникальности продукта в порядке, однако не требуется. То есть результаты, такие как
('name1', 'surname1', ('product1', 'product1', 'product2', 'product3'))
, являются точными.
Почему 'Имя2 'и' surname2' идут до 'name1' и' surname1'? – Ryan
Хорошая точка! Я забыл упомянуть, что порядок в результатах не важен, обновил сообщение, чтобы отразить это – Greg