簡體   English   中英

對對象字典進行排名的最佳方法是什么?

[英]What is the best approach to rank a dictionary of objects?

給定以下類:

class Comparison():

    def __init__(self, value):
        self.value = value
        self.rank = 0

class Comparisons(dict):

    def __init__(self):
        super(Comparisons, self).__init__()

    def rank(self):
        # Method to examine each Comparison instance and
        # assign Comparison.rank based on Comparison.value

rank()方法檢查對象並分配等級的有效方法是什么? 例如:

comparisons = Comparisons()

# store some Comparison instances
comparisons['one'] = Comparison(10)
comparisons['two'] = Comparison(5)
comparisons['three'] = Comparison(1)

# function to rank the comparisons
comparisons.rank()

print(comparisons['one'].rank)
print(comparisons['two'].rank)
print(comparisons['three'].rank)

回報:

3
2
1

如果rank()方法可以處理平局,那將更加有益。

這看起來像最直觀(天真?)的方式:

def rank(self):
    sorted_comparisons = sorted(self.values(), key=lambda c: c.value)
    for rank, comparison in enumerate(sorted_comparisons, 1):
        comparison.rank = rank

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM