我有以下代码:
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)
当我打印列表时,我得到以下内容:
zebra - 23
aira - 211
airplane - 435
现在我想对列表进行排序,以便获得此输出:
aira - 211
airplane - 435
zebra - 23
那么如何对列表中的Data
对象进行排序呢?
答案 0 :(得分:3)
你可以这样做:
sorted(lst, key=lambda data: data.s[0])
如果您想按lst
对s[0]
中的元素进行排序。
sorted
函数有一个参数key
,您可以指定一个返回要排序的键的函数。
sorted function in Python Document:
排序(可迭代[,键] [,反向])
...
key指定一个参数的函数,该函数用于从每个列表元素中提取比较键:
key=str.lower
。默认值为None
(直接比较元素)。