python内置函数——sorted、filter、map、format
对List、Dict进行排序,Python提供了两个方法
对给定的List L进行排序,
方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本
方法2.用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变
参数说明:
- iterable:是可迭代类型;
- key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
- reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
- 返回值:有序列表
例:
列表按照其中每一个值的绝对值排序
l1 = [1,3,5,-2,-4,-6] l2 = sorted(l1,key=abs) print(l1) print(l2)列表按照每一个元素的len排序
l = [[1,2],[3,4,5,6],(7,),'123'] print(sorted(l,key=len))filter
filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
def is_odd(x):return x % 2 == 1然后,利用filter()过滤掉偶数:
>>>list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))结果:
[1, 7, 9, 17]利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' def is_not_empty(s):return s and len(s.strip()) > 0 >>>list(filter(is_not_empty, ['test', None, '', 'str', ' ', 'END']))结果:
['test', 'str', 'END']注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
当rm为空时,默认删除空白符(包括’\n’, ‘\r’, ‘\t’, ’ '),如下:
>>> a = ' 123' >>> a.strip() '123'>>> a = '\t\t123\r\n' >>> a.strip() '123'练习:
请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]方法:
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import math def is_sqr(x):return math.sqrt(x) % 1 == 0 print(list(filter(is_sqr, range(1, 101))))结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]map
Python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
有一个list, L = [1,2,3,4,5,6,7,8],我们要将f(x)=x^2作用于这个list上,那么我们可以使用map函数处理。
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' >>> L = [1,2,3,4,] >>> def pow2(x): ... return x*x ... >>> list(map(pow2,L)) [1, 4, 9, 16]format
说明:
函数功能将一个数值进行格式化显示。
如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化。
总结
以上是生活随笔为你收集整理的python内置函数——sorted、filter、map、format的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python教程:%s、%d、%f的使用
- 下一篇: Python argparse模块基本用