Python实用小技巧(二)

Python实用小技巧

1.Map函数

Map函数是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,他它的格式大致如下

def add(x):
    return x * x


l = [1, 2, 3]
print(list(map(add, l))

map第一个参数接收的是一个函数,第二个参数是一个列表。然后组成一个新的元素进行返回。如果熟悉lamda表达式的朋友,可以写的更加简单一点,直接写成成下面这样的写法。

l = [1, 2, 3]
print(map(lambda x: x * x, l))

2.reduce函数

reduce 函数需要传入一个有两个参数的函数,然后用这个函数从左至右顺序遍历序列并生成结果,定义如下:

reduce(function, sequence[, initial]) -> value
  • function # 函数, 序列中的每个元素需要执行的操作, 可以是匿名函数
  • sequence # 需要执行操作的序列
  • initial # 可选,初始参数

使用方式如下

from functools import reduce

r = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])

print(r)

---->15

我们可以直接看到,reduce函数对列表进行了累加。还有一种附带初始值的情况

from functools import reduce

s = reduce(lambda x, y: x + y, ['1', '2', '3', '4', '5'], "数字 = ")

print(s)

---->数字 = 12345

3.filter 函数

filter() 函数用来过滤序列中不符合条件的值,返回一个迭代器,该迭代器生成那些函数(项)为 true 的 iterable 项。如果函数为 None,则返回为 true 的项。定义如下:

filter(function or None, iterable) --> filter object
  • function or None # 过滤操作执行的函数
  • iterable # 需要过滤的序列

这里来一个简单的demo,比如说,我们要选出列表中,所有的偶数,可以写成这样

s = filter(lambda n: n % 2 == 0, list(range(20)))
print(list(s)

----> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

4.sorted函数

sorted 函数默认将序列升序排列后返回一个新的 list,还可以自定义键函数来进行排序,也可以设置 reverse 参数确定是升序还是降序,如果 reverse = True 则为降序。函数定义如下:

def sorted(iterable: Iterable[_T], *,
           key: Optional[Callable[[_T], Any]] = ...,
           reverse: bool = ...) -> List[_T]: ...
  • iterable # 序列
  • key # 可以用来计算的排序函数。
  • reverse # 排序规则,reverse = True 降序,reverse = False 升序(默认)。

举个简单例子:

list01 = [5, -1, 3, 6, -7, 8, -11, 2]
list02 = ['apple', 'pig', 'monkey', 'money']

print(sorted(list01))
# print out: [-11, -7, -1, 2, 3, 5, 6, 8]

print(sorted(list01, key=abs))
# print out: [-1, 2, 3, 5, 6, -7, 8, -11]

# 默认升序
print(sorted(list02))
# print out: ['apple', 'money', 'monkey', 'pig']

# 降序
print(sorted(list02, reverse=True))
# print out: ['pig', 'monkey', 'money', 'apple']

# 匿名函数排序
print(sorted(list02, key=lambda x: len(x), reverse=True))
# print out: ['monkey', 'apple', 'money', 'pig']

5.回调函数

在Python中,我们可以把函数,作为参数传递给另外一个函数,让其他函数来调用这个函数。列如

def callback(n):
    return n * 2


def fun(call, x):
    return call(x)


print(fun(callback, 2))

-----> 4

从这里我们可以看到,我把callback作为一个参数传给了fun函数,fun函数返回的时候再调用这个回调方法,将结果进行返回。在传入回调方法的时候,我们直接将函数名传入即可,使用时,按照正常的函数使用流程使用即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值