Python教程:几个常用的内置函数

yizhihongxing

匿名函数(lambda表达式)

在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点:

  • 减少代码重复量
  • 模块化代码

但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使用一次(无需重复调用),那还需要定义一个有名字的函数么?

答案是否定的,这里我们就可以使用匿名函数来实现这样的功能。

我们先看看求一个数的平方,我们定义个函数怎么写:

def square(x):
    return x**2

square(3)

而lambda表达式就可以这样写:

square = lambda x: x**2
square(3)

根据上面的例子,其实lambda表达式使用还是很简单的,如下:

lambda argument1, argument2,.....: expression

接下来,介绍的map、filter和reduce函数,与lambda表达式结合使用,才能发挥其强大的作用了。

map函数

map函数的使用如下:

map(function, iterable)

其作用是,对iterable的每个元素,都运用function这个函数,最后返回新的可遍历的集合。

a = [1,2,3,4,5]
b = map(lambda x: x*2,a)
print(list(b))
# [2, 4, 6, 8, 10]

filter函数

filter函数的使用如下:

filter(function, iterable)

其作用是,对iterable的每个元素,都运用function这个函数进行判断,最后返回全部为True的新的可遍历的集合。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = [1,2,3,4,5,6]
b = filter(lambda x :x%2 ==0, a)
print(list(b))
# [2, 4, 6]

reduce函数

reduce函数的使用如下:

reduce(function, iterable)

function规定有两个参数,表示对iterable每个元素和上一次运算的结果,进行function运算,最后得到一个值,这里要注意,我们需要从functools中导入reduce。

from functools import reduce

a = [1,2,3,4]
b = reduce(lambda x,y: x*y,a)
print(b)
# 24  1*2*3*4

总结

  • lambda表达式
  • map、filter和reduce函数

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python教程:几个常用的内置函数 - Python技术站

(0)
上一篇 2023年4月2日 下午5:44
下一篇 2023年4月2日

相关文章

  • Python教程:类的派生

    一、派生 派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准 1 派生方法一(类调用) 指名道姓访问某一个类的函数:该方式与继承无关 class OldboyPeople: “””由于学生和老师都是人,因此人都有姓名、年龄、性别””” school = ‘oldboy’ def __init__(self, nam…

    Python开发 2023年3月31日
    00
  • Python教程:list.sort()和函数sorted(list)

    1.sort()是列表的方法,修改原列表使得它按照大小排序,没有返回值,返回None In [90]: x = [4, 6, 2, 1, 7, 9] In [91]: x.sort() In [92]: x Out[92]: [1, 2, 4, 6, 7, 9] In [98]: aa = x.sort() In [99]: aa # 返回None 2.so…

    Python开发 2023年4月2日
    00
  • Python3教程:多线程的使用教程

    一、简介 Python中使用线程有两种方式:函数或者用类来包装线程对象。 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下: 参数说明: function – 线程函数。 args – 传递给线程函数的参数,他必须是个tuple类型。 kwargs – 可选参数。 实例: import _thread im…

    Python开发 2023年4月2日
    00
  • 什么是Python装饰器?

    装饰器是Python中非常重要的一个概念,如果你会Python的基本语法,你可以写出能够跑通的代码,但是如果你想写出高效、简洁的代码,我认为离不开这些高级用法,当然也包括本文要讲解的装饰器,就如同前面提到的代码调试神器PySnooper一样,它就是主要通过装饰器调用的方式对Python代码进行调试。 1.什么是Python装饰器? 顾名思义,从字面意思就可以…

    Python开发 2023年3月31日
    00
  • Python教程:高级特性

    1.切片 L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。 如果第一个索引是0,还可以省略: >>> L =[‘Michael’, ‘Sarah’, ‘Tracy’, ‘Bob’, ‘Jack’] >>> L[:3] [‘Michael’, ‘Sarah’, ‘Tracy…

    Python开发 2023年3月31日
    00
  • Python中切片操作的详细用法

    在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。 本文通过详细例子总结归纳了切片操作的各…

    Python开发 2023年4月2日
    00
  • Python类的封装教程

    一、什么是封装 封装的本身意思其实就和闭包函数一样,就是把一个函数和变量全都包在一起,但其实这样的说法不是很具体,就是一种很片面的解释 二、为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要原因是:隔离复杂度(快门就是傻瓜相机为傻瓜们提供的方法,该方法将内部复杂的照相功能都隐藏起来了,只提供了一个快门键,就可以直接拍照) 提示:在编程语言里,对外提…

    Python开发 2023年3月31日
    00
  • Python3教程:加密模块-hashlib

    一、哈希 1. 什么是可哈希(hashable) 简要的说,可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects)。 2. 哈希有什么作用 它是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。 3. 什么是不可哈希(unhash…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部