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'