(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

不是删除对象中的元素,是直接从内存中删除该对象。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容