Python3对一个class类型的list按class中某一属性排序

来源:互联网 发布:php exec 返回127 编辑:程序博客网 时间:2024/06/06 03:38
写作业的时候需要对一个point(x,y)类型的list按照point的x坐标从小到大排序,于是去网上找了,但是并没有找到如题的回答(其实有一个意思的回答但是我认为不是这个意思就没注意看),然后就去找了屌屌的同学问这个玩意,然后我同学就甩给我了一个
def comp(self, a, b): if a.start>b.start:return 1 elif a.start==b.start:return 0 else : return -1 intervals.sort(self.comp) 

这样的东西,看起来很靠谱啊,嗯!就这么弄,so easy!然后我在python3上面写着python2,一样的用法,一直报错,你这个comp必须要有两个参数啊,你自己写的代码你不知道带参数?报错报错。

就这个东西,想了我一个上午,我认为我写的超级对啊,没问题啊,为什么,python针对我,

然后就一直上网搜啊,突然!!!

l.sort(key=lambda t:t.x)
这玩意怎么看着???,这啥意思,我曹!!!我这python3啊,然后
例子3
默认sorted([True, False])==[False, True] (False=0 < True=1)
一个字符串排序,排序规则:小写<大写<奇数<偶数
#元组内(e1, e2, e3)的优先级排列为: e1 > e2 > e3
sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x)
#input: 'asdf234GDSdsf23'
#output: 'addffssDGS33224'
1
2
3
4
5
x.isdigit()的作用是把数字放在后边(True),字母放在前面(False).
x.isdigit() and int(x) % 2 == 0的作用是保证数字中奇数在前(False),偶数在后(True)。
x.isupper()的作用是在前面基础上,保证字母小写(False)在前大写在后(True).
最后的x表示在前面基础上,对所有类别数字或字母排序。

社会社会

原创粉丝点击