0

私は以下を作成しました

class uniquePlayers():

    def __init__(self):
        self._item = [ [] for i in range(5) ]
        self.count = 0

    def addPlayer(self, firstInstance, firstName, lastName, Country, long):
        self._item[0].append(firstInstance)
        self._item[1].append(firstName.lower())
        self._item[2].append(lastName.lower())
        self._item[3].append(Country)
        self._item[4].append(long.lower())
        self.count += 1

    def sortByKey(self, index = 4 ):
        self._item[index].sort()

クラス全体を並べ替えようとしていますが、他のリストのすべてが続くようにしています。明らかに私がやったことは、「長い」リストをソートするだけです

4

1 に答える 1

0

一緒に属するデータを一緒に保持する必要があります。したがって、それぞれ 1 つの属性を持つ 5 つのリストを作成する代わりに、すべてのプレーヤー データを含む 1 つのリストを作成します。

def __init__(self):
    self._players = []

def addPlayer(self, firstInstance, firstName, lastName, Country, long):
    player = (firstInstance, firstName.lower(), lastName.lower(), Country, long.lower())
    self._players.append(player)

def sortByKey(self, index=4):
    self._players.sort(key=lambda x: x[index])

プレーヤー データに名前付きタプルを使用して、より簡単にアクセスしたり、プレーヤーに新しいタイプ (クラス) を導入したりすることもできます。

于 2012-12-23T18:01:45.890 に答える