callable判断 一个东西 是否可以调用。感觉没啥用!!!
>>> x=1
>>> import math
>>> y=math.sqrt
>>> callable(x)
False
>>> callable(y)
True
>>> def square(x):
'calculate the square of the number x'
return x*x
>>> square.__doc__
'calculate the square of the number x'
>>>
列表传参本质上是指针:
>>> def change(n):
n[0]="asdf"
>>> name=['qqq','bbb']
>>> change(name)
>>> name
['asdf', 'bbb']
>>>
全局变量:
>>> x=1
>>> def change_global():
global x
x+=1
>>> change_global()
>>> x
2
bisect模块实现二元查找。
map:
>>> map(str, range(10))
<map object at 0x00000000035048D0>
>>> list(map(str, range(10)))
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
filter:
>>> seq=['foo', 'x41', '?!', "***"]
>>> def func(x):
return x.isalnum()
>>> filter(func, seq)
<filter object at 0x0000000003512278>
>>> list(filter(func, seq))
['foo', 'x41']
>>>
>>> [x for x in seq if x.isalnum()]
['foo', 'x41']
lambda
>>> filter(lambda x: x.isalnum(), seq)
<filter object at 0x0000000003504E80>
>>> list(filter(lambda x: x.isalnum(), seq))
['foo', 'x41']
reduce:前两个元素与给定的函数联合使用,返回值与第三个元素继续联合使用。
>>> from functools import reduce
>>> num=[72, 101, 108, 111, 44, 53]
>>> reduce(lambda x,y : x+y, num)
489
>>>