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

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

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

語法:len( obj )

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

>>>str = "connie"

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

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

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


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

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

語法:

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

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

參數介紹:

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

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

default---用來指定最大值不存在時返回的默認值。

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

? 若是數值,則按數值大小比較;

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

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

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


1.9.2.1 元素為簡單數據類型

示例:

>>> 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,如返回最大值對應的鍵

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

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

上例重點說明:(很實用的技巧)

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

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


1.9.2.2 元素為復雜數據類型

? 列表(元素為子列表)

>>> 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}

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

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

? return x['age']

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

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


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

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


1.9.4 del 刪除對象

格式: del obj

不是刪除對象中的元素,是直接從內存中刪除該對象。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容