有多个类型一致的对象,a b c
每个对象下有同样的整数属性a.click
现在需要根据click的数值大小排序(可能有重复),
再根据click的排序位置取出,对象里的其他成员数据
想了好半天,该怎么实现呢
曾经蜡笔没有小新2017-06-13 09:26:48
这样吗?
# coding: utf8
class A():
def __init__(self):
self.click = 0
a = A()
a.click = 4
a.test = 'I am a'
b = A()
b.click = 1
b.test = 'I am b'
c = A()
c.click = 2
c.test = 'I am c'
for i in sorted([a, b, c], key=lambda x: x.click, reverse=True):
print i.test
# 输出(根据click的值从小到大输出test属性)
I am b
I am c
I am a
给我你的怀抱2017-06-13 09:26:48
写了个例子:
#!/usr/bin/python3
class Class:
def __init__(self, key, value):
self.key, self.value = key, value
def get_values(*args):
return [o.value for o in sorted(args, key=lambda o: o.key)]
print(
get_values(
Class(3, 1),
Class(1, 2),
Class(2, 3)
)
)
# Output: [2, 3, 1]
是这个意思吗