(14)最常用的公共方法len()、max()、min() 、del

1.9 len()、max()、min() 、del

1.9.1 len() 返回對象(字符串、列表、元組、字典等)長度或元素個數(shù)

語法:len( obj )

返回值:返回對象長度。示例:

>>>str = "connie"

>>>len(str)? #返回字符串長度6

>>>citys = ['beijing', 'shanghai', 'shenzhen','tianjin']

>>>len(citys)? #返回4


1.9.2 max() 返回對象(字符串、列表、元組、字典、集合等)最大元素

函數(shù)功能為返回傳入的多個參數(shù)中的最大值,或者傳入的可迭代對象元素中的最大值(字典返回鍵)。

語法:

max(iterable, *[, key, default])

max(arg1, arg2, *args[, key])

參數(shù)介紹:

iterable---可迭代對象,如字符串、列表、元組、字典等

key---可做為一個函數(shù),用來指定取最大值的方法。

default---用來指定最大值不存在時返回的默認(rèn)值。

? 所有元素的類型必須相同;

? 若是數(shù)值,則按數(shù)值大小比較;

? 若是字符串,則比較首字母,首字母相同則比較第二個,依次往下;

? 當(dāng)列表的元素是字典時不能直接求max(),必須通過key定義方法;

? 當(dāng)列表的元素為列表時,對比參照是元素中的第一個元素,若要用元素的其他元素做比較,需要需要通過key定義方法。


1.9.2.1 元素為簡單數(shù)據(jù)類型

示例:

>>> max(3,5,7,1)? #返回7

? 列表

>>>citys = ['beijing', 'shanghai', 'shenzhen','tianjin']

>>> max(citys) #返回'tianjin'

>>> students = ['lisi','zhangsan',12,'lisi']

>>> max(students)? #報錯,列表中元素類型不一致

? 字典

? 返回最大的鍵

>>> student_age={'zhangsan' : 10, 'lisi': 11, 'wangwu': 10, 'zhaoliu': 9}

>>> max(student_age)? #返回最大的鍵'zhaoliu',不是鍵值對。

? 返回特殊要求的鍵的max,如返回最大值對應(yīng)的鍵

>>> student_age={'zhangsan' : 10, 'lisi': 11, 'wangwu': 10, 'zhaoliu': 9}

>>> max(student_age,key=student_age.get)? #返回字典中最大值對應(yīng)的鍵,即'lisi'

上例重點(diǎn)說明:(很實(shí)用的技巧)

key后面定義了鍵的獲取方法,即該字典中最大values對應(yīng)的key。

定義的student_age.get方法返回value,在value中獲取最大value即11,再依據(jù)鍵值對中值為11返回鍵。最大value有多個時則返回第一個匹配到的第一個鍵值對的鍵。


1.9.2.2 元素為復(fù)雜數(shù)據(jù)類型

? 列表(元素為子列表)

>>> students = [['lisi',10],['zhangsan',9],['wangwu',11]]

>>> max(students)? #返回 子列表['zhangsan', 9],比較的是子列表的第一個元素

才有key定義方法的方式可以指定比較子列表中的不同元素。

如:按子列表的第二個元素求max

>>> max(students, key=lambda x: x[1])? #返回['wangwu', 11]

說明:若max(students, key=lambda x: x[0]) 與 max(students)等效,都是按子列表的第一個元素求max

? 列表(元素為字典)

>>> students = [{'name': 'zhangsan', 'age': 12},{'name': 'lisi', 'age': 15}, {'name': 'wangwu', 'age': 13}]

>>> max(students)? #列表中元素為字典時直接max,報錯。

>>> max(students, key=lambda x: x['age'])? #獲取'age'最大的元素,返回元素{'name': 'lisi', 'age': 15}

上例重點(diǎn)說明:lambda是一個表達(dá)式,定義了一個匿名函數(shù),代碼x為入口參數(shù),x['age']為函數(shù)體,類似:

def f(x):? #獲取字典中鍵為'age的值

? return x['age']

按照表達(dá)式(方法)定義的規(guī)則獲取最大的age對應(yīng)的元素,即{'name': 'lisi', 'age': 15}

>>> max(students, key=lambda x: x['name'])? #獲取姓名排第一的元素,返回元素{'name': 'zhangsan', 'age': 12}


1.9.3 min(),與max同,區(qū)別是返回最小元素

格式和使用方法與max完全相同。


1.9.4 del 刪除對象

格式: del obj

不是刪除對象中的元素,是直接從內(nèi)存中刪除該對象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容