首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >20 - 如果列表元素是对象,该如何进行排序

20 - 如果列表元素是对象,该如何进行排序

原创
作者头像
ruochen
修改2021-05-24 10:28:12
修改2021-05-24 10:28:12
1.5K0
举报

1. 如果列表元素是对象,对这样的列表排序有哪些方法 ?

代码语言:txt
复制
class MyClass:
    def __init__(self):
        self.value = 0
      
    '''
    def __gt__(self, other):
        return self.value > other.value
        '''
    
    def __lt__(self, other):
        return self.value > other.value
        
    
my1 = MyClass()
my1.value = 20

my2 = MyClass()
my2.value = 10

my3 = MyClass()
my3.value = 30

a = [my1, my2, my3]
print(a)

import operator

# a.sort()

a.sort(key=operator.attrgetter('value'))
b = sorted(a, key=operator.attrgetter('value'))
print(a[0].value)
print(a[1].value)
print(a[2].value)

print(b[0].value)
代码语言:txt
复制
[<__main__.MyClass object at 0x00000205D1AB5DA0>, <__main__.MyClass object at 0x00000205D1AB5668>, <__main__.MyClass object at 0x00000205D1AB5D68>]
代码语言:txt
复制
10
代码语言:txt
复制
20
代码语言:txt
复制
30
代码语言:txt
复制
10

2. 如果列表元素是对象,进行倒序排列的方法有哪些 ?

代码语言:txt
复制
# a.sort(key=operator.attrgetter('value'), reverse=True)

a.sort()

print(a[0].value)
print(a[1].value)
print(a[2].value)
代码语言:txt
复制
30
代码语言:txt
复制
20
代码语言:txt
复制
10

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 如果列表元素是对象,对这样的列表排序有哪些方法 ?
  • 2. 如果列表元素是对象,进行倒序排列的方法有哪些 ?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档