python多個(gè)對(duì)象的某個(gè)成員比大小怎么做?
問題描述
有多個(gè)類型一致的對(duì)象,a b c每個(gè)對(duì)象下有同樣的整數(shù)屬性a.click
現(xiàn)在需要根據(jù)click的數(shù)值大小排序(可能有重復(fù)),
再根據(jù)click的排序位置取出,對(duì)象里的其他成員數(shù)據(jù)
想了好半天,該怎么實(shí)現(xiàn)呢
問題解答
回答1:這樣嗎?
# coding: utf8class A(): def __init__(self):self.click = 0a = A()a.click = 4a.test = ’I am a’b = A()b.click = 1b.test = ’I am b’c = A()c.click = 2c.test = ’I am c’for i in sorted([a, b, c], key=lambda x: x.click, reverse=True): print i.test # 輸出(根據(jù)click的值從小到大輸出test屬性)I am bI am cI am a回答2:
寫了個(gè)例子:
#!/usr/bin/python3class Class: def __init__(self, key, value):self.key, self.value = key, valuedef 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]
是這個(gè)意思嗎
相關(guān)文章:
1. 怎樣使留言的數(shù)據(jù)與登錄的用戶名,密碼保持一致(在數(shù)據(jù)庫上是一行的)。2. java - 輸出4個(gè)不相等整數(shù)之間所有任意三個(gè)整數(shù)的乘積3. javascript - 一排三個(gè)框,各個(gè)框的間距是15px,距離外面的白框間距也是15px,這個(gè)css怎么寫?4. javascript - jqery 適應(yīng)輪播,哪位前輩可以幫助小弟按照下面圖片寫一個(gè)大概例子,小弟在此跪謝!5. css3 - rem布局下,用戶瀏覽器的最小字號(hào)是12px怎么辦?6. css如何實(shí)現(xiàn)兩欄布局,左邊固定寬度,右邊寬度自適應(yīng),且高度和瀏覽器當(dāng)前高度一致?7. css3 - CSSComb for Sublime Text 在 Windows 下無法使用。8. javascript - nodejs中使用request庫怎么抓取網(wǎng)頁中的圖片9. mysql money 插入數(shù)據(jù)為什么報(bào)錯(cuò)?10. angular.js - 百度爬蟲如何處理“#”符號(hào)?
