python多個對象的某個成員比大小怎么做?
問題描述
有多個類型一致的對象,a b c每個對象下有同樣的整數屬性a.click
現在需要根據click的數值大小排序(可能有重復),
再根據click的排序位置取出,對象里的其他成員數據
想了好半天,該怎么實現呢
問題解答
回答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 # 輸出(根據click的值從小到大輸出test屬性)I am bI am cI am a回答2:
寫了個例子:
#!/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]
是這個意思嗎
相關文章:
1. javascript - react如何獲取offsetX?2. python - sqlalchemy更新數據報錯3. html5 - 前端面試碰到了一個緩存數據的問題,來論壇上請教一下4. MySQL中無法修改字段名的疑問5. macos - 無法source activate python276. PHPExcel表格導入數據庫怎么導入7. css - 移動端 盒子內加overflow-y:scroll后 字體會變大8. 運行python程序時出現“應用程序發生異常”的內存錯誤?9. html - 網頁的a標簽到底要不要寫上域名?10. 我在導入模板資源時遇到無法顯示的問題,請老師解答下

網公網安備