@chengweihuang
2019-04-19T01:48:54.000000Z
字数 1327
阅读 800
每日总结
def f(x):return x*xL=[]for n in range(1,9):L.append(f(n))print(L)
map()作为高阶函数,事实上它把运算规则抽象了。map()函数接收两个参数,一个是函数,一个是Iterable(迭代),map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
def f(x):return x*xprint(list(map(f,range(1,9))))
将这个list所有数字转为字符串:
list(map(str, range(1,10)))
将一组由数字拼接成的字符串,转为数字
aa=map(int,"1,2,3,4,5,6,7".split(','))print(list(aa))
aa=map(int,"1234567")print(list(aa))
reduce()使用
把序列[1,2,3,4,5,6]变换成整数123456
def fn(x,y):return x*10+yprint(reduce(fn,[1,2,3,4,5,6]))
把'123456'字符串转换成整数123456 不用int()
my_nums = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}def fn(x,y):return x*10+ydef charnum(s):a=my_nums[s]return aprint(reduce(fn,map(charnum,'123456')))
lambda
my_nums = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}def charnum(s):a=my_nums[s]return aprint(reduce(lambda x,y:x*10+y,map(charnum,'123456')))
lambda argument_list: expression
argument_list : 参数列表
expression : 关于参数的表达式
lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数
add=lambda x, y: x+y
add(1,2)
time.sleep=lambda x:None 屏蔽 time.sleep
return lambda x, y: x+y 函数的返回值也可以是函数
filter函数 过滤
filter(lambda x: x % 3 == 0, [1,2,3,4,5,6,7,8,9])
使用定义函数是这样的
def num_three(x):
return x % 3 ==0
filter(num_three,[1,2,3,4,5,6,7,8,9])
sorted排序
print(sorted([1, 2, 3,11, 4, 5, 6, 7, 8, 9]))print(sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x)))
reversed() 逆转集合