我目前正在尝试使用内置函数Sorted来对具有名为score的类属性的列表进行排序。
这里排序的函数只与列表一起使用,它按正确的顺序对分数进行排序。
Scores = [1,5,19,0,900,81,9000]
print(sorted(Scores))
但是当我尝试将此函数应用于具有class属性的列表时,会返回错误: AttributeError:' list'对象没有属性'得分'
这是我的代码:
print(sorted(RecentScores.Score))
非常感谢任何帮助。
下面是我的类初始化和列表RecentScores
class TRecentScore():
def __init__(self):
self.Name = ''
self.Score = 0
RecentScores = [1,5,0]
答案 0 :(得分:5)
你没有在课堂上使用你正在做的事情只是声明一个包含一些数字的列表,然后你试图在该列表对象上调用属性Score
。
class TRecentScore():
def __init__(self, name, scores):
self.name = name
self.scores = scores
recent_scores = TRecentScore('Sorted Scores', [1,5,0])
print(sorted(recent_scores.scores))
答案 1 :(得分:2)
在课程定义中,您必须先将__init__
中的名称和分数视为输入,如下所示:
class TRecentScore():
def __init__(self, Name, Score):
self.Name = Name
self.Score = Score
然后只有在课堂上分配名称和分数才有意义。
接下来,必须实例化类RecentScores
的{{1}}实例,将名称和分数作为初始化的参数传递。这可以如下所示完成:
TRecentScore
这将打印出已排序的分数。希望这有帮助!
答案 2 :(得分:1)
如果您总是希望对分数列表进行排序,则可以使用sorted创建新列表对列表进行排序:
class TRecentScore():
def __init__(self, name, score):
self.Name = name
self.score = score
self.score.sort()
RecentScores = TRecentScore("score list", [1,5,19,0,900,81,9000])
print (RecentScores.score)
[0, 1, 5, 19, 81, 900, 9000]