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
),甚至无法执行。请粘贴导致您出现问题的确切代码!