gpt4 book ai didi

python - 如何根据 python 中的不同对象值对对象列表进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:03 24 4
gpt4 key购买 nike

我有一个具有多个不同值的类。我希望能够按不同的值对这些对象的列表进行排序,但我不确定该怎么做。我希望能够针对任何值和两个方向(从最小到最大,反之亦然)对它们进行排序。

例如下面是一个示例类,以及一个示例对象列表:

class Sample(object):
def __init__(self, name, sampleValue1, sampleValue2):
self.name
self.value1 = sampleValue1
self.value2 = sampleValue2

def __repr__(self):
return self.name

# creating sample objects for clarification
objectNames = ['A','B','C','D']
values1 = [3,4,1,2]
values2 = [1,4,2,3]
sampleObjects = list()
for i in xrange(4):
obj = Sample(objectNames[i], values1[i], values2[i])
sampleObjects.append(obj)

从每个对象值中对 sampleObjects 进行排序应该会产生以下结果。排序应按指定顺序返回对象列表(下面使用对象名称)。

value1: [C,D,A,B]
value1 reversed: [B,A,D,C]
value2: [A,C,D,B]
value2 reversed: [B,D,C,A]

最佳答案

Python 内置 sorted函数有签名:

sorted(iterable[, cmp[, key[, reverse]]])

key specifies a function of one argument that is used to extract a comparison key from each list element

针对您的情况:

>>> sorted(sampleObjects, key=lambda obj: obj.value1)
[C, D, A, B]
>>> sorted(sampleObjects, key=lambda obj: obj.value2)
[A, C, D, B]

关于python - 如何根据 python 中的不同对象值对对象列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25985566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com