map()是Python内置的高阶函数,它接收一个函数f和一个list,并通过把函数f依次作用在l ist的每个元素上,得到一个新的list 并返回 例如,对于 list [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果希望把dd, [1,4, 6, 7, 9, 12, 17])
结果:[1, 7, 9, 17]
利用filter(),可以完成很多有用的功能,例如,删除 None或者空字符串:
def is_not_empty(s):
return s and len(()) > 0
filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])
结果:['test', 'str', 'END']
注意:(rm) 删除s字符串中开头、结尾处的rm序列的字符。
当rm为空时,默认删除空白符(包括'\n', '\r', '\t','') ,如下:
a = ' 123' |
()
结果:'123'
a='\t\t123 \r\n
()
结果:'123'
请利用filter() 过滤出1〜100中平方根是整数的数,即结果应该是:
[1,4, 9, 16, 25, 36, 49, 64, 81, 100]
filter() 接收的函数必须判断出一个数的平方根是否是整数,而 ()返回结果是浮点数。
参考代码:
import math
def is_sqr(x):
r = int((x))
return r*r==x
print filter(is_sqr, range(1, 101))
日定义排序函数 sorted()
Python内置的sorted()函数可对list 进行排序:
>>>sorted([36, 5, 12, 9, 21])
[5, 9, 12, 21, 36]
但sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,
传入两个待比较的元素x, y ,如果x应该排在y的前面,返回-1 ,如果x应该排在y的后面, 返回1。如果x和y相等,返回0。
因此,如果我们要实现倒序排序,只需要编写一个 reversed_cmp函数:
def reversed_cmp(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
这样,调用sorted() 并传入reversed_cmp就可以实现倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]
sorted()也可以对字符串进行排序,字符串默认按照 ASCII大小来比较:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']
'Zoo'排在'about'之前是因为’Z'的ASCII码比'a'小。
对于比较函数cmp_ignore_case(s1, s2),要忽略大小写比较
python常用函数 来自淘豆网m.daumloan.com转载请标明出处.