Python学习笔记——20170824

来源:互联网 发布:记事本数据导入excel 编辑:程序博客网 时间:2024/06/06 21:05

高阶函数

  • map() 函数
def func(x):    return x * x#map1 = map(func, range(0, 10))print(list(map1))#map2 = map(str, range(0, 10))print(list(map2))
  • reduce() 函数
from functools import reduce#def fun1(x, y):    return x + y#reduce1 = reduce(fun1, [1, 2, 3, 4])print(reduce1)
  • filter() 函数
def is_odd(x):    return x % 2 == 1#filter1 = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9])print(list(filter1))#def not_empty(x):    return x and x.strip()#filter2 = filter(not_empty, ['hello', ' world ', '   ', 'c a r'])print(list(filter2))#name = ' xiao ming 'print(name.strip())
  • sorted() 函数
print(sorted([12, 23, 23, 42, 12, 4, 12, 34, 54]))print(sorted([12, -23, 23, -42, 12, -4, -12, 34, 54], key=abs))print(sorted([12, -23, 23, -42, 12, -4, -12, 34, 54], key=abs, reverse=True))

函数其他用法

  • 函数作为返回值
def get_sum(*args):    x = 0    for n in args:        x += n    return x#numSum = get_sumprint(type(numSum))num = numSum(1, 2, 3)print(num)
  • 闭包
def line_conf(a, b):    def line(x):        return a * x + b    return line  # 返回一个函数#line1 = line_conf(2, 3)number = line1(4)print(number)
  • lambda 匿名函数
nums = range(1, 10)#def func(x):    return x * x#print(list(map(func, nums)))print(list(map(lambda x: x * x, nums)))
  • 装饰器
# 单个装饰器def log(fun):    def wrapper(*args, **kwargs):        print('执行 %s():' % fun.__name__)        return fun(*args, **kwargs)    return wrapper#@logdef print_date():    print('2017-08-24')#print_date()  # 相当于log(print_date)()### 多个装饰器def make_bold(fun):    def wrapper():        print("---1---")        return "<b>" + str(fun()) + "</b>"    return wrapper#def make_italic(fun):    def wrapper():        print("---2---")        return "<i>" + str(fun()) + "</i>"    return wrapper#@make_bold@make_italicdef test():    print("---3---")#test()
  • 偏函数
import functools#num1 = functools.partial(int, base=2)('10101')print(num1)num2 = functools.partial(int, base=16)('15')print(num2)
原创粉丝点击