Python学习第九课——匿名函数

Posted PY憨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习第九课——匿名函数相关的知识,希望对你有一定的参考价值。

匿名函数

# 匿名函数
func = lambda x: x + 1  # x表示参数  x+1表示处理逻辑
print(func(10))  # 输出结果为11

# 例:如何将name="hanhan" 改为 hanhan_shuai的形式

# 普通函数写法
name = "hanhan"


def change_name(x):
    return name + _shuai


res = change_name(name)
print(res)  # 输出结果 hanhan_shuai

# 匿名函数写法

fun = lambda x: x + _shuai
print(fun(name))  # 输出结果 hanhan_shuai

# 匿名函数也可以返回多个值

f = lambda x, y, z: (x + 1, y + 1, z + 4)
print(f(1, 2, 3))  # 输出结果 (2, 3, 7)

reduce函数

# 利用reduce函数完成列表中元素的累加
num = [1, 2, 3, 4, 5]
# 用之前要先导入
from functools import reduce

#   reduce(function, sequence[, initial]) -> value
res = reduce(lambda x, y: x + y, num, 1)  # 第一个参数是函数
res1 = reduce(lambda x, y: x + y, num, 0)  # 第二个是逻辑运算,第三个是起始值
res2 = reduce(lambda x, y: x + y, num)  # 默认为0
print(res) # 输出结果 16
print(res1) # 输出结果 15
print(res2) # 输出结果 15

filter函数

#例:将看电影列表人中过滤掉以‘sb’结尾的名字,用filter实现。

# filter(function or None, iterable) --> filter object
movie_people = [alex_sb, wupeiqi_sb, linhaifeng, yuanhao_sb]
li = filter(lambda n: not n.endswith(sb), movie_people)
print(list(li)) # 输出结果 [‘linhaifeng‘]

 

map函数

# map函数  map(func, *iterables) --> map object
# 用map实现将列表中的值叠加1
num = [1, 2, 3, 4, 5]
res = map(lambda x: x + 1, num)  # map第一个参数为处理方法,第二个参数为可迭代对象
print(res)
# for i in res:
#     print(i)
print(list(res))  # 输出结果 [2, 3, 4, 5, 6]

# 用map实现将小写转大写

st = "hanhanshigeshuaige"

res1 = map(lambda x: x.upper(), st)
print(list(res1))

一些常用的内置函数

print(abs(-1))  # 取绝对值

print(bin(20))  # 将十进制转换为二进制
print(hex(12))  # 10进制->16进制
print(oct(12))  # 10进制->8进制

name = 憨憨好
print(bytes(name, encoding=utf-8))  # 将字符串转换为字节
print(bytes(name, encoding=utf-8).decode(utf-8))  # 解码 将字节转化为字符串

总结

# map() 处理序列中的每个元素,得到的结果是一个‘列表’,读‘列表’元素个数及位置与原来一样

# filter() 遍历序列中的每个元素,判断每个元素得到布尔值,如果是True就留下来。

# reduce() 处理一个序列,然后把序列进行合并操作

 

以上是关于Python学习第九课——匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy学习第九课

第九课 Python语句的编写之for

C++探索之旅第一部分第九课:数组威武,动静合一

python第九课 面向对象

学习linux第九课!

第九课 聚集函数