python基础之高阶函数,读写文件,常用模块,字符编码

本文介绍了Python中的高阶函数,包括三元运算、filter、map和lambda表达式的使用,以及文件读写操作。此外,探讨了subprocess和paramiko模块在系统交互和远程操作中的应用,还涵盖了正则表达式基础和字符编码的理解,特别是ASCII、GBK、Unicode和UTF-8的区别。
摘要由CSDN通过智能技术生成

目录:

一. 三元运算,filter和map与lambda表达式结合使用举例

1、三元运算

  • 三元运算格式: result=值1 if x<y else 值2 if条件成立result=1,否则result=2
  • 作用:三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写

三元运算:

name = 'Tom' if 1 == 1 else 'fly'
print(name)
# 运行结果: Tom

三元运算与lambda结合:

f = lambda x:x if x % 2 != 0 else x + 100
print(f(10))                    # 110

2、lambda基本使用

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
  • 格式:lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,之后是一个表达式。

lambda基本使用:

f = lambda x,y,z:x+y+z
print(f(1,2,3))                    # 6

my_lambda = lambda arg : arg + 1
print(my_lambda(10))               # 11

3、总结:filter()和map()函数区别

  • Filter函数用于对序列的过滤操作,过滤出需要的结果,一次性返回他的过滤设置于的是条件
  • Map函数是对序列根据设定条件进行操作后返回他设置的是操作方法,无论怎样都会返回结果

map()函数:

  • 接收两个参数:一个函数和一个可迭代对象
  • 返回值:返回一个生成器
  • 生成器内容是将func依次作用域iter每个元素的处理结果

4、filter与lambda表达式结合使用

filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

  • 1 filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义
    的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。

  • 2 . filter()函数有两个参数:
    • 第一个,自定函数名,必须的
    • 第二个,需要过滤的列,也是必须的

利用 filter、lambda表达式 获取l1中元素小于33的所有元素 l1 = [11, 22, 33, 44, 55]:

l1= [11,22,33,44,55]
a = filter(lambda x: x<33, l1)
print(list(a))

自定义函数代替lambda实现相同功能:

l1= [11,22,33,44,55]
def func(num):
    if num>33:
        return num
result=filter(func,l1)
print(list(result))

5、map与lambda表达式结合使用

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。**
map使用:第一个参数接收一个函数名,第二个参数接收一个可迭代对象

map最基本使用:

lt = [1, 2, 3, 4, 5, 6]
def add(num):
    return num + 1
rs = map(add, lt)
print(list(rs))           #运行结果:  [2, 3, 4, 5, 6, 7]

利用map,lambda表达式将所有偶数元素加100:

l1= [11,22,33,44,55]
ret = map(lambda x:x if x % 2 != 0 else x + 100,l1)
print(list(ret))
# 运行结果: [11, 122, 33, 144, 55]

利用map,lambda表达式将所有偶数元素加100:

l1= [11,22,33,44,55]
def add(num):
    if num%2 == 0:
        return num
    else:
        return num + 100
rs = map(add, l1)
print(list(rs))

自定义函数代替lambda实现相同功能:

l1= [11,22,33,44,55]
def add(num):
    if num%2 == 0:
        return num
    else:
        return num + 100
rs = map(add, l1)
print(list(rs))

filter( )函数:

  • 参数是一个函数和一个可迭代对象
  • 返回一个生成器
  • 将func依次作用于iter中的元素,返回值为真的将会保留,为假的将会过滤掉

6、reduce函数

reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

  • reduce()函数即为化简函数&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值