美文网首页
python常见高级用法

python常见高级用法

作者: 从小白到全栈 | 来源:发表于2019-07-07 15:01 被阅读0次

Lambda匿名函数

匿名函数就是没有定义函数名称,可以实现函数某些简单功能

匿名函数格式:

lambda param_list:expression

#param_list,参数列表

#expression,建议书写一些简单的表达式,没法完整实现复杂代码块内容

f=lambda x,y:x+y

data=f(2,6)

print(data)

以上代码实现了一个x+y的值,先把匿名函数赋值给一个变量f,调用f传入两个参数,赋值给data,然后打印data。lambda匿名函数也可以和三元表达式一起使用。

f =lambda x,y: x+yif x>yelse x-y

data = f(8,7)

print(data)

上述代码的意思是匿名函数传入两个参数,如果x>y返回x+y,否则返回x-y。

三元表达式

在Java中三元表达式的表示是:x>=y?x+y:x-y,如果x>=y为true,则返回?后面的值,否则返回:后面的值

但是在python中不是这样的,格式:

条件为真的结果 if 条件判断 else 条件为假的结果

f = lambda x: x if x.islower() else x.upper()

data=f("hello")

print(data)

上述代码的意思是传入一个单词x,如果全部都是小写则返回小写,否则返回大写

高阶函数

map(func,*iterables)

#func,表示可接收一个函数

#*iterables,表示可接收一个可迭代的序列

a = [1,2,3,4,5]

b =map(lambda x:x**3,a)

print(list(b))

上述代码有一个列表a,使用map里面传入一个匿名函数和可迭代序列a,赋值给b变量,这个时候b是一个对象不能直接打印,需要转成列表

a = [1,2]

b = [1,2,3,4]

c =map(lambda a,b:a+b,a,b)

print(list(c))

上述代码是返回两个列表相加的结果集,但是两个列表长度不同,结果会怎么样呢?结果是[2,4],在map中,如果两个列表长度不一,则会返回长度较短的结果集。

reduce(function,sequence[,initial]) #这个函数需要手动导入 from functools import reduce

#function,接收一个函数

#sequence,接收一个可迭代序列

#initial,初始运算的值

from functoolsimport reduce

a=[1,2,3,4,5]

num = reduce(lambda x,y:x*y,a,100)#这里给第三个参数初始值为100,运算方式是100*1*2*3*4*5

print(num)

上述代码是计算列表a各个元素的乘积,再来说说第三个参数initial,初始运算的值

,这个参数是会最先运算。reduce适用于连续计算。

filter(function,iterable)#用于元素过滤

#function 接收一个函数

#iterable接收一个可迭代序列

a=[0,1,2,3,4,5,6]

b =filter(lambda x:True if x!=0 else False,a)#bool(1)为True,bool(2)为False,可以简化成lambda x:x,a,当为0的时候为False,不为0的时候为True

print(list(b))

上述代码是将a列表中不为0的数添加到b集合,filter返回结果必须是True或False

列表推导式

基本格式:

variable=[i for i in input_list if 条件判断]

#variable,列表名,可自定义

# i 循环变量名

# input_list,可迭代序列

# if 条件判断,如果不写,默认所有条件都成立

d={'apple':1,'banana':2,'pear':3}

b = [ifor iin d.keys()]

print(b)

上述代码是将字典中的键保存到一个列表中

d={'apple':1,'banana':2,'pear':3}

b = { value:keyfor key,valuein d.items()}

print(b)

上述代码是将字典中的键值替换位置

相关文章

  • python常见高级用法

    Lambda匿名函数 匿名函数就是没有定义函数名称,可以实现函数某些简单功能 匿名函数格式: lambda par...

  • Python装饰器的高级用法

    Python装饰器的高级用法(翻译) 原文地址https://www.codementor.io/python/t...

  • Python 高级用法

    python 中 __all__变量: 它是一个string元素组成的list变量,定义了当你使用from im...

  • Python高级用法

    前言 本篇文章主要介绍了python的一些高级用法:时间和日期、列表推导式、Python高阶函数、多线程。 时间和...

  • python高级用法

    本文主要介绍三种python的高级用法:列表推导式、迭代器和生成器、装饰器 一、列表推导(list compre...

  • Python/Numpy的一些高级用法(个人笔记)

    Python/numpy 常用与高级用法总结(实时更新)开始在商汤做算法研究员后,工作中要写大量python,但因...

  • Python装饰器高级用法

    转载至:Python装饰器高级用法 在 Python 中, 装饰器 一般用来修饰函数,实现公共功能,达到代码复用的...

  • python中super()的一些用法

    在看python高级编程这本书的时候,在讲到super的时候,产生了一些疑惑,super在python中的用法跟其...

  • Python面向对象编程(二)

    本文我们继续介绍一些Python面向对象编程中的高级用法,依然参考廖雪峰老师的Python教程。 教程地址:htt...

  • Python 中 in 的用法总结

    in 在python中的使用很常见,用处也很多,很强大,这里记录下几种常见的用法。 在 for 循环中,获取列表或...

网友评论

      本文标题:python常见高级用法

      本文链接:https://www.haomeiwen.com/subject/vktbhctx.html