python多个对象的某个成员比大小怎么做?
学习ing
学习ing 2017-06-13 09:24:48
0
2
787

有多个类型一致的对象,a b c
每个对象下有同样的整数属性a.click

现在需要根据click的数值大小排序(可能有重复),

再根据click的排序位置取出,对象里的其他成员数据

想了好半天,该怎么实现呢

学习ing
学习ing

全部回复(2)
曾经蜡笔没有小新

这样吗?

# 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
给我你的怀抱

写了个例子:

#!/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]

是这个意思吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板