Python进阶【第六篇】内置函数中好玩的几个(今天写的太水)

zip()函数

两个参数一一对应,参数是序列类型,序列包括列表,元组,字符串,当两个序列不等长时,按公共最长部分匹配,形似“拉链”。

max()和min()函数

以max()为例,min()类似,只是大小相反:

max()进行比较时所传入的数据类型一定要是可迭代对象,循环依次取出每个元素进行比较。

比较时从第一个元素开始,依次比较,对于字典的比较,其比较的的是key值的大小,若想按values比较,就需要用到zip()函数

zip(dic.values(),dic.keys())

 例如,当传入一个字典people,key值为name,value为age,按value比较:

max(people,key=lambda dic:dic['age'])

 这一句代码就等价于

ret[]
for item in people:
    ret.append(item['age'])
print(ret)

 即:取出来字典中每组的age值,再用max()比较。

总结max()比较:

1.max()处理的是可迭代对象,相当于一个for循环取出每个元素进行比较,注意,不同类型之间不能比较

2.每个元素进行比较,是从每个元素的第一个位置进行比较,如果这一位置分出大小,后面的都不需要比较了,直接得出俩元素的大小。

3.max()和min()相反,方法相同。

sorted()排序

 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。

Python内置的sorted()函数就可以对list进行排序:

>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]

 此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序

>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]

 sorted()也是一个高阶函数。用sorted()排序的关键在于实现一个映射函数

原文地址:https://www.cnblogs.com/bep-feijin/p/8699107.html