python多個物件的某個成員比大小怎麼做?
学习ing
学习ing 2017-06-13 09:24:48
0
2
722

有多個類型一致的對象,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]

是這個意思嗎

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!