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

您应该将属于一起的数据保存在一起。因此,不要有 5 个列表,每个列表都有一个属性,而是有一个包含所有玩家数据的列表:

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 回答