首頁  >  問答  >  主體

python多個物件的某個成員比大小怎麼做?

有多個類型一致的對象,a b c
每個對像下都有相同的整數屬性a.click

現在需要根據click的數值大小排序(可能有重複),

再根據click的排序位置取出,物件裡的其他成員資料

想了好半天,該怎麼實現呢

学习ing学习ing2708 天前761

全部回覆(2)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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

    回覆
    0
  • 给我你的怀抱

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

    是這個意思嗎

    回覆
    0
  • 取消回覆