0

スコア (「カウント」) によってインスタンスの位置を示すインスタンス メソッドを作成しようとしています。

def ordinal_inator(num):
    last = int(str(num)[-1])
    if 4 <= num <= 20:
        suffix = 'th'
    elif last == 1:
        suffix = 'st'
    elif last == 2:
        suffix = 'nd'
    elif last == 3:
        suffix = 'rd'
    else:
        suffix = 'th'

    return num + suffix


class Cal:
    count = 0
    member_list = list()

    def __init__(self, name):
        if name not in Cal.member_list:
            Cal.member_list.append(name)
        self.count += 1

    def positione(self):
        members = dict()
        for member in Cal.member_list:
            members[member] = member.count
        sorted_members = sorted(members.items(), key=lambda x: x[1])
        cardinal_position = sorted_members.index(self)
        ordinal_position = ordinal_inator(cardinal_position)
        return ordinal_position


for i in range(3):
    gino = Cal('gino')
for j in range(2):
    nono = Cal('nono')
nina = Cal('nina')

print(gino.positione())

実行すると、python でエラーが表示されます。

TypeError: 'builtin_function_or_method' と 'builtin_function_or_method' のインスタンス間で '<' はサポートされていません

31行目

sorted_members = sorted(members.items(), key=lambda x: x[1])

その行のどこにも「<」が表示されません...どうすれば修正できますか?

4

0 に答える 0