是否使用类属性作为排序键?

在中间等级,我可以以某种方式对评论级排序?
就像是:
sr = self.reviews.sort(key = self.reviews.instance.grade)
班级评论(对象):
def __init __(self,movieid,等级,日期):
self.movi​​eid = movieid
self.grade =等级
self.date =日期
班级客户(对象):
def __init __(self,idnumber,评论):
self.idnumber = idnumber
self.reviews = [评论]
def addreview(自我,评论):
self.reviews.append(评论)
DEF平均磨牙(自我):
tot = 0
用于自我评论.回报:
tot +=评论.
返回tot / len(self.reviews)
#general Sort将ObjectKey的列表+规格进行排序?
DEF SORTREVIEWS(自我):
DEF QSORT(LISTA):
如果Len(Lista)!= 0:
返回Qsort([x for x in lista [1:]如果x.grade <
Lista [0] .grade]) + [Lista [0]] + \
qsort([x for x in lista [1:]如果x.grade> = =
Lista [0] .grade])
别的:
返回 []
返回QSORT(self.reviews)
def中基果(自我):
长度= len(self.reviews)
sr = self.sortreviews()
#sr = self.reviews.sort(key = self.reviews.instance.grade)
如果长度%2 == 0:
返回(sr [int(长度/2)].等级 + sr [int(长度/
2-1)].等级) / 2
别的:
如果长度== 1:
返回SR [0] .grade
别的:
返回sr [int(round(长度/2)-1)].等级

# 回答1


CNB:
操作员可能会有所帮助.
再见,
# 回答2


只需使用"密钥"参数列表列表.例如
类foo(对象):
def __init __(self,x):
self.x = x
def __repr __(自我):
返回" foo:"+str(self.x)
foos = [foo(75),foo(10),foo(-1)]
foos.sort(key = lambda foo:foo.x)
打印foos#= [foo:-1,foo:10,foo:75]
- 克里斯
========
遵循鬣蜥的路... http://rebertia.com
2008年8月29日星期五,上午11:22,CNB
# 回答3


CNB写道:
Google" Python分类密钥属性"
第一个命中(在您的帖子之后)是http://wiki.python.org/moin/howto/sorting
在该页面上查找"属性"以获取答案(两个选项).

标签: python

添加新评论