Я написал следующий код, работающий со словарем и списком:
d = computeRanks() # dictionary of id : interestRank pairs
lst = list(d) # tuples (id, interestRank)
interestingIds = []
for i in range(20): # choice randomly 20 highly ranked ids
choice = randomWeightedChoice(d.values()) # returns random index from list
interestingIds.append(lst[choice][0])
Возможно, есть ошибка, потому что я не уверен, есть ли соответствие между индексами в lst и d.values () .
Вы знаете, как написать это лучше?