Python 如何对包含对象的列表进行排序?

Python 如何对包含对象的列表进行排序?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我有以下代码: lst = [] class DATA: def __init__(self): s = ['',''] def fillLst(): d1 = DATA() d1.s[0] = 'zebra' d1.s[1] = 23 d2 = DATA() d2.s[0] = 'airplane' d2.s[1] = 435 d1 = DATA() d1.s[0] = 'aira' d1.

我有以下代码:

lst = []

class DATA:
    def __init__(self):
        s = ['','']

def fillLst():
    d1 = DATA()
    d1.s[0] = 'zebra'
    d1.s[1] = 23

    d2 = DATA()
    d2.s[0] = 'airplane'
    d2.s[1] = 435

    d1 = DATA()
    d1.s[0] = 'aira'
    d1.s[1] = 211


    lst.append(d1)
    lst.append(d2)
    lst.append(d3)
当我打印列表时,我得到以下信息:

斑马-23 aira-211 飞机-435 现在我想对列表进行排序,以便获得以下输出:

aira-211
飞机-435
斑马-23
那么,如何使用列表中的
数据
对象对列表进行排序呢?

您可以这样做:

sorted(lst, key=lambda data: data.s[0])
如果要按
s[0]
lst
中的元素进行排序

sorted
函数有一个参数
key
,您可以指定一个函数来返回要排序的键

:

已排序(iterable[,key][,reverse])

key指定一个参数的函数,用于从每个列表元素中提取比较键:
key=str.lower
。默认值为
None
(直接比较元素)


到目前为止,你试图解决什么问题?这里有很多很好的问题,也是一个很好的官员。你发布的代码的可能副本充满了打字错误(缺少
self
d1
,而不是
d3
),甚至无法执行。请粘贴导致您出现问题的确切代码!