以前我們對一系列元素排序以公升序或者降序時,可以建立乙個列表,然後使用自帶的sort函式解決公升序倒序問題,那麼現在,如果要物件的某個元素值進行排序?該怎樣獲取它的屬性然後對屬性進行排序呢?其實方法很簡單。python自帶的sort函式有乙個key值可以讓他按照key的指定方法去排序,譬如:sort(key=len)。這時您就可以看到列表以元素的長度進行了排序,物件也是如此,獲取屬性可以使用lambda函式
pai.sort(key =
lambda a: a.name)
在這裡,a代表物件的屬性值
額外補充:__str__函式的作用:
訪問物件預設返回的引數
class
person
:def
__init__
(self,name,city)
: self.name = name
self.city = city
def__str__
(self)
:return
str(self.city)
defmoveto
(self,newcity)
: self.city = newcity
a = person(
'老王'
,'荊州'
)b = person(
'老李'
,'鄭州'
)c = person(
'老劉'
,'廣州'
)d = person(
'老周'
,'福州'
)pai =
[a,b,c,d]
print
('before:'
)for i in pai:
print
('姓名:'
+i.name+
' '+
'城市:'
+i.city)
pai.sort(key =
lambda a: a.name)
print
('after:'
)for i in pai:
print
('姓名:'
+i.name+
' '+
'城市:'
+i.city)
a.moveto(
'鄭州'
)print
(a.name+
'搬去了'
+a.city)
有錯誤的話懇請各位指正,謝謝! 根據表中某列去除重複的行
根據表中某列 或者某些列 去除重複的行 例如有表a,有兩行相同的cardid,我們只要隨機的某一行 drop table a drop table b create table a cardid varchar 100 cardcode varchar 100 insert into a cardi...
根據某條件給GridView符合條件的值畫上刪除線
如博文標題,根據某些條件對gridview控制項中,對符合條件的值畫上刪除線效果。實現這些要求,隻人捕獲到哪些符合要求的資料即可。gridview控制項是在templatefield模版顯示資料,insus.net並沒有使用任一控制項,如label或literal等控制項來呈現資料。稍後在寫onro...
python實現物件列表根據某個屬性排序的方法詳解
對於乙個已有的python list,裡面的內容是一些物件,這些物件有一些相同的屬性值,在一些特定的情況下,需要自己選擇特定的排序,也就是根據某乙個具體的屬性來排序,在網上找了下資料,一般來說有兩種方法,但從根本上來說,還是呼叫了list.sort方法來實現。下面是簡單的測試 片段 coding u...