当前位置:   article > 正文

Python3对一个class类型的list按class中某一属性排序_python如何按照class的某个值排序

python如何按照class的某个值排序
写作业的时候需要对一个point(x,y)类型的list按照point的x坐标从小到大排序,于是去网上找了,但是并没有找到如题的回答(其实有一个意思的回答但是我认为不是这个意思就没注意看),然后就去找了屌屌的同学问这个玩意,然后我同学就甩给我了一个
  1. def comp(self, a, b):
  2. if a.start>b.start:return 1
  3. elif a.start==b.start:return 0
  4. else : return -1
  5. 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表示在前面基础上,对所有类别数字或字母排序。

社会社会

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/177621
推荐阅读
相关标签
  

闽ICP备14008679号