1.9 len()、max()露该、min() 睬棚、del
1.9.1 len() 返回對(duì)象(字符串、列表解幼、元組抑党、字典等)長度或元素個(gè)數(shù)
語法:len( obj )
返回值:返回對(duì)象長度。示例:
>>>str = "connie"
>>>len(str)? #返回字符串長度6
>>>citys = ['beijing', 'shanghai', 'shenzhen','tianjin']
>>>len(citys)? #返回4
1.9.2 max() 返回對(duì)象(字符串撵摆、列表底靠、元組、字典特铝、集合等)最大元素
函數(shù)功能為返回傳入的多個(gè)參數(shù)中的最大值暑中,或者傳入的可迭代對(duì)象元素中的最大值(字典返回鍵)。
語法:
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
參數(shù)介紹:
iterable---可迭代對(duì)象鲫剿,如字符串痒芝、列表、元組牵素、字典等
key---可做為一個(gè)函數(shù)严衬,用來指定取最大值的方法。
default---用來指定最大值不存在時(shí)返回的默認(rèn)值笆呆。
? 所有元素的類型必須相同请琳;
? 若是數(shù)值粱挡,則按數(shù)值大小比較;
? 若是字符串俄精,則比較首字母询筏,首字母相同則比較第二個(gè),依次往下竖慧;
? 當(dāng)列表的元素是字典時(shí)不能直接求max()嫌套,必須通過key定義方法;
? 當(dāng)列表的元素為列表時(shí)圾旨,對(duì)比參照是元素中的第一個(gè)元素踱讨,若要用元素的其他元素做比較,需要需要通過key定義方法砍的。
1.9.2.1 元素為簡(jiǎn)單數(shù)據(jù)類型
示例:
>>> max(3,5,7,1)? #返回7
? 列表
>>>citys = ['beijing', 'shanghai', 'shenzhen','tianjin']
>>> max(citys) #返回'tianjin'
>>> students = ['lisi','zhangsan',12,'lisi']
>>> max(students)? #報(bào)錯(cuò)痹筛,列表中元素類型不一致
? 字典
? 返回最大的鍵
>>> student_age={'zhangsan' : 10, 'lisi': 11, 'wangwu': 10, 'zhaoliu': 9}
>>> max(student_age)? #返回最大的鍵'zhaoliu',不是鍵值對(duì)廓鞠。
? 返回特殊要求的鍵的max帚稠,如返回最大值對(duì)應(yīng)的鍵
>>> student_age={'zhangsan' : 10, 'lisi': 11, 'wangwu': 10, 'zhaoliu': 9}
>>> max(student_age,key=student_age.get)? #返回字典中最大值對(duì)應(yīng)的鍵,即'lisi'
上例重點(diǎn)說明:(很實(shí)用的技巧)
key后面定義了鍵的獲取方法床佳,即該字典中最大values對(duì)應(yīng)的key滋早。
定義的student_age.get方法返回value,在value中獲取最大value即11砌们,再依據(jù)鍵值對(duì)中值為11返回鍵杆麸。最大value有多個(gè)時(shí)則返回第一個(gè)匹配到的第一個(gè)鍵值對(duì)的鍵。
1.9.2.2 元素為復(fù)雜數(shù)據(jù)類型
? 列表(元素為子列表)
>>> students = [['lisi',10],['zhangsan',9],['wangwu',11]]
>>> max(students)? #返回 子列表['zhangsan', 9]怨绣,比較的是子列表的第一個(gè)元素
才有key定義方法的方式可以指定比較子列表中的不同元素。
如:按子列表的第二個(gè)元素求max
>>> max(students, key=lambda x: x[1])? #返回['wangwu', 11]
說明:若max(students, key=lambda x: x[0]) 與 max(students)等效拷获,都是按子列表的第一個(gè)元素求max
? 列表(元素為字典)
>>> students = [{'name': 'zhangsan', 'age': 12},{'name': 'lisi', 'age': 15}, {'name': 'wangwu', 'age': 13}]
>>> max(students)? #列表中元素為字典時(shí)直接max篮撑,報(bào)錯(cuò)。
>>> max(students, key=lambda x: x['age'])? #獲取'age'最大的元素匆瓜,返回元素{'name': 'lisi', 'age': 15}
上例重點(diǎn)說明:lambda是一個(gè)表達(dá)式赢笨,定義了一個(gè)匿名函數(shù),代碼x為入口參數(shù)驮吱,x['age']為函數(shù)體茧妒,類似:
def f(x):? #獲取字典中鍵為'age的值
? return x['age']
按照表達(dá)式(方法)定義的規(guī)則獲取最大的age對(duì)應(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 刪除對(duì)象
格式: del obj
不是刪除對(duì)象中的元素梅忌,是直接從內(nèi)存中刪除該對(duì)象狰腌。