我创建了以下
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()
我正在尝试对整个班级进行排序,保留其他列表中的所有内容。显然我所做的只是排序“长”列表
答案 0 :(得分: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])
您还可以使用named tuple作为播放器数据,更轻松地访问它,甚至更好,为玩家引入新类型(类)。