對於乙個已有的python list, 裡面的內容是一些物件,這些物件有一些相同的屬性值, 在一些特定的情況下,需要自己選擇特定的排序,也就是根據某乙個具體的屬性來排序,在網上找了下資料,一般來說有兩種方法,但從根本上來說,還是呼叫了list.sort方法來實現。下面是簡單的測試**片段:
#coding:utf-8
class person:
def __init__(self,name,age,salary):
self.name = name
self.age = age
self.salary = salary
obj_list = [
person('juneys',20,30000),
person('sam',20,20000),
person('eddy',22,25000),
person('eagle',25,10000)
]#第一種方法
obj_list.sort(cmp=none, key=lambda x:x.salary, reverse=false)
print '***********第一種方法********************jspndjivjx***'
for obj in obj_list:
print obj.name,程式設計客棧obj.salary
# 第二種方法,更適合於大量資料的情況.
try:
import operator
except importerror:
cmpfun= lambda x: x.count # use a lambda if no operator module
else:
cmpfun= operator.attrgetter("salary") # use operator since it's faster than lambda
obj_list.sort(key=cmpfun, reverse=true)
print '***********第二種方法***********************'
for obj in obj_list:
jspndjivjxprint obj.name,obj.salary
構造了乙個 person 類, 然後初始化一些物件放入obj_list 中, 然後想根據工資進行排序,方法一與方法二分別實現了公升序或者降序。 以此類推還可以實現按年齡排序等.
本例結果如下:
***********第一種方法***********************
eagle 10000
sam 20000
eddy 25000
juneys 30000
***********第二種方法***********************
juneys 30000
eddy 25000
sam 20000
eagle 10000
python實現mask矩陣(根據列表所給元素)
行和列的位置都在以下三個列表中的一列中,則對應位置為1,其餘位置全為0 7 56,239 327,438 454,522 556,574 586 57 85,96 112,221 238 113 220,328 437,455 521,557 573 實現def generatemaskbasedo...
Python列表物件實現原理詳解
python中的列表基於pylistobject實現,列表支援元素的插入 刪除 更新操作,因此pylistobject是乙個變長物件 列表的長度隨著元素的增加和刪除而變長和變短 同時它還是乙個可變物件 列表中的元素根據列表的操作而發生變化,記憶體大小動態的變化 pylistobject的定義 typ...
python3 selenium獲取列表某一列的值
python3 selenium獲取列表某一列的值 我們在坐自動化測試時,我們可能不想單純的想驗證乙個選項卡,我們讓指令碼隨機選擇乙個選項進行接下來的操作。例如我們想獲取列表某一列的某乙個資料 隨機的 進行操作時,我們該怎麼操作?請看下面的列表,獲取列表的所有運單號 我們可以選擇xpath通過進行定...