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'))
posted @ 2023-10-21 12:41  White_Sheep  阅读(7)  评论(0编辑  收藏  举报