首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对列表中的对象进行排序?

如何对列表中的对象进行排序?
EN

Stack Overflow用户
提问于 2013-11-29 05:06:53
回答 1查看 90关注 0票数 1

我有以下代码

代码语言:javascript
复制
class Tupla:
       def __init__(self, xid, prob):
           self.xid = xid
           self.prob = prob

我在一个列表中附加了这个类的一些对象

代码语言:javascript
复制
print myList1
>> [('X10', 11, ''), ('X9', 11, ''), ('X11', 11, ''), ('X2', 11, '')]

我试着点菜

代码语言:javascript
复制
myList1 = sorted(myList1, key=lambda Tupla: Tupla.xid, reverse=True)

print myList1
>> [('X9', 11, ''), ('X2', 11, ''), ('X11', 11, ''), ('X10', 11, '')]

我在找人类分类。我需要这样的名单:

代码语言:javascript
复制
 [('X2', 11, ''), ('X9', 11, ''), ('X10', 11, ''), ('X11', 11, '')]

我怎么能这么做?

EN

回答 1

Stack Overflow用户

发布于 2013-11-29 05:10:23

代码语言:javascript
复制
def Tupla(xid, prob):
    class _Tupla:
        def __init__(self):
            pass

        def get_id(self):
            return xid

        def get_prob(self):
            return prob


    return _Tupla()

myList = map(lambda arg: Tupla(*arg), (('X10', 11), ('X9', 11), ('X11', 11), ('X2', 11)))
myList.sort(key = lambda obj: int(obj.get_id()[1:]))

print [(x.get_id(), x.get_prob()) for x in myList]

输出:

代码语言:javascript
复制
[('X2', 11), ('X9', 11), ('X10', 11), ('X11', 11)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20278730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档