Вы можете использовать другую структуру для ваших ставок.Вместо использования разных списков, синхронизированных по индексу, вы можете использовать словарь и кортежи Python.Может быть, что-то вроде этого:
items_bids = {
item1: [ (bidder1, amount), (some_other_bidder, amount), ... ],
item2: [ (bidder1, amount), (some_other_bidder, amount), ... ],
.
.
.
}
Затем восстановление макс.Ставки для каждого элемента просты:
for item, bids in items_bids.iteritems():
print max(bids, key=lambda x: x[1])
Вы можете создать свою структуру данных по-разному, так как эта система имеет быструю вставку предложений, но требует больше времени для получения самой высокой ставки.Кроме того, получение всех ставок, сделанных одним участником, было бы более трудоемким для компьютера.
А для более понятного кода вы можете использовать некоторые объекты с именованными полями вместо кортежей.