已采纳回答 / 正_0001
你去看看sorted()函数就明白了。 (进入python命令后,输:help(sorted))例:list = [x,y,z]sorted(list) 中的默认排序函数根据:list中数值类型自带的cmp()返回的值。而sorted默认排序是从从小到大。cmp(x,y)若返回-1,sorted就认为x<y,将x排在y之前。同理,cmp(x,y) 若返回0,则认为x==y, 若返回1 ,则认为 x>y,将y排在x之后。最终sorted根据cmp 将list排序好。而本题相反,高分排在前面,所以...
2015-05-21
最赞回答 / JS000
简单点说就是当一个函数(如def my_func(): pass)前面加了@函数名(如@log),然后log函数就被赋值给my_func函数本身,并且my_func作为参数传入log函数,也就是my_func = log(my_func)。然后用前面高阶函数的知识去理解就行了。有参数装饰器就是多了一个函数而已,层层剖析下就行了
2015-05-21
print filter(lambda s:s and len(s.strip())>0, ['test', None, '', 'str', ' ', 'END'])
2015-05-21
def calc_prod(lst):
def prod(x,y):
return x*y
def lazy_product():
return reduce(prod,lst)
return lazy_product
def prod(x,y):
return x*y
def lazy_product():
return reduce(prod,lst)
return lazy_product
2015-05-21
def cmp_ignore_case(s1, s2):
if s1.lower()>s2.lower():
return 1
if s1.lower()<s2.lower():
return -1
return 0
if s1.lower()>s2.lower():
return 1
if s1.lower()<s2.lower():
return -1
return 0
2015-05-21
def is_sqr(x):
if math.sqrt(x)%1==0:
return x
print filter(is_sqr, range(1, 101))
if math.sqrt(x)%1==0:
return x
print filter(is_sqr, range(1, 101))
2015-05-21
import math
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
2015-05-21