python语法糖学习指南
filter
filter(函数,序列)
filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 结果: [1, 5, 9, 15]
将一个序列中的空白字符串删除
def not_empty(s):
return s and s.strip()
list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))
# 结果: ['A', 'B', 'C']
reduce
reduce(函数,迭代器)
将数组变为整数
#【1,3,5,7,9】->13579
def fn(x,y):
return x*10+y
reduce(fn,[1,3,5,7,9])
将字符串变为整数
form functools import reduce
def fn(x, y):
return x * 10 + y
def char2num(s):
digits={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return digits[s]
reduce(fn,map(char2num,'13579'))