@NumberFairy
2018-07-02T10:06:31.000000Z
字数 1935
阅读 1229
TAG: Python
import math
def add(x,y,f):
return f(x)+f(y)
print add(25,9,math.sqrt)
def format_name(s):
return s[0].upper()+s[1:].lower()
print map(format_name,['LARA','jack','adMin'])
def prod(x,y):
return x*y
print reduce(prod,[1,2,3,4,5,6])
def mySorted(x,y):
if x>y:
return 1
if x<y:
return -1
return 0
print sorted([3,1,4,7,16,2],mySorted)
def getFun(list):
def lazy():
def prod(x,y):
return x*y
return reduce(prod,list)
return lazy
f = getFun([1,2,3,4])
print f
print f()
/******** 输出结果:*******/
<function lazy at 0x7fdef8ea6668>
25
/**************************/
第一个返回的应该是lazy函数对应的内存地址;第二个才是返回集合[1,2,3,4]的乘积的值。
import math
def my_sqrt(x):
r = (math.sqrt(x))
return r*r == x
print filter(my_sqrt,range(1,101))
def count():
fs=[]
for i in range(1,4):
def f():
return i*i
fs.append(f)
return fs
f1,f2,f3=count()
print f1()
print f2()
print f3()
/*******RESULT********/
最后的结果都是:9(这里可以参考c语言的指针进行分析)
>>> map(lambda x:x*x,[1,2,3,4,5])
[1,4,9,16,25]
再比如:
>>> sorted([1,3,9,5,0],lambda x,y:-cmp(x,y))
[9,5,3,1,0]