built in function in python - QLGQ/learning-python GitHub Wiki
filter()
filter(function, sequence)
str = ['a', 'b', 'c', 'd']
def fun1(s):
if s != 'a':
return s
else:
return None
ret = filter(fun1, str)
print ret
输出结果为:
['b', 'c', 'd']
对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回。可以看作是过滤函数。
map()
map(function, sequence)
str = ['a', 'b', 'c', 'd']
def fun2(s):
return s + ".txt"
ret = map(fun2, str)
print ret
运行结果为:
['a.txt', 'b.txt', 'c.txt', 'd.txt']
对sequence中的item依次执行function(item),将执行结果组成一个List返回。
map也支持多个sequence,这就要求function也支持相应数量的参数输入:
def add(x,y):
return x+y
print map(add, range(10), range(10))
运行结果为:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
reduce
reduce(function, sequence, starting_value)
def add1(x, y):
return x + y
print reduce(add1, range(1, 100))
print reduce(add1, range(1, 100), 20)
运行结果为:
4950
4970
上述代码分别计算“1+2+...+99”和“1+2+...+99+20”的值。
对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和。
lambda
lambda
g = lambda s: s + ".fsh"
print g("haha")
print (lambda x: x * 2) (3)
运行结果为:
haha.fsh
6
这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似于C语言中的宏,这些叫做lambda的函数。
strip()
Return a copy of the string with leading characters removed. The chars argument is a string specifying the set of characters to be removed.
If omitted or None, the chars argument defaults to removing whitespace. The chars argument is not a prefix; rather, all combinations of its values are stripped:
' spacious '.strip()
'spacious'
'www.example.com'.strip('cmowz.')
'example.com'
strip()方法用于移除字符串头尾指定的字符(默认为空格)。
strip()方法语法:
str.strip([chars])
- chars -- 移除字符串头尾指定的字符
返回移除字符串头尾指定的字符生成的新字符串。
str = "0000000this is string example....wow!!!0000000"
print str.strip('0')
this is string example....wow!!!
split()
split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分割num个子字符串。
split()方法语法:
str.split(str=" ", num=string.count(str))
- str -- 分隔符,默认为空格。
- num -- 分割次数。
返回分割后的字符串列表。
str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print str.split()
print str.split(' ', 1)
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
count()
count()方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
count()方法语法:
str.count(sub, start=0, end=len(string))
- sub -- 搜索的子字符串。
- start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end -- 字符串中结束搜索的位置。字符中最后一个字符的索引为-1或len(str),默认为字符串的最后一个位置。
该方法返回子字符串在字符串中出现的次数。
str = "this is string example....wow!!!"
sub = "i"
print "str.count(sub, 4, 40): ", str.count(sub, 4, 40)
sub = "wow"
print "str.count(sub): ", str.count(sub)
str.count(sub, 4, 40): 2
str.count(sub): 1
pop()
pop()函数用于移除列表中的一个元素(默认最后一个元素),并返回该元素的值。
pop()方法语法:
list.pop(obj = list[-1])
实例如下:
aList = [123, 'xyz', 'zara', 'abc']
aList.pop(2)
'zara'
aList
[123, 'xyz', 'abc']
aList.pop()
'abc'