Python常用的8个高级函数

lambda

它们在其他语言中也被称为匿名函数。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。

lambda argument: manipulate(argument)

lambda 参数:操作(参数)

add = lambda x, y: x + yprint(add(3, 5))# Output: 8a = [(1, 2), (4, 1), (9, 10), (13, -3)]def f(x):return x[1]# a.sort(key=f)a.sort(key=lambda x: x[1])print(a)# Output: [(13, -3), (4, 1), (1, 2), (9, 10)]

sorted

sorted(iterable, *, key=None, reverse=False)

从 iterable 中的 item 中返回一个新的排序列表。

有两个可选参数,必须将其指定为关键字参数。

key 指定一个带有一个参数的函数,用于从每个列表元素中提取比较键:key=str.lower。默认值是 None(直接比较元素)。

reverse 是一个布尔值。如果设置为 True,那么列表元素按照每个比较被颠倒的顺序进行排序。

内置的 sorted() 函数排序是稳定的。如果确保不会更改比较相等的元素的相对顺序,则排序是稳定的 。

三元表达式

三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断.

它允许用简单的一行快速判断,而不是使用复杂的多行if语句。 这在大多数时候非常有用,而且可以使代码简单可维护。

# 如果条件为真,返回真 否则返回假condition_is_true if condition else condition_is_falseif condition:
    result = condition_is_trueelse:
    result = condition_is_false

map

map(function, iterable, ...)

返回一个将 function 应用于每个 iterable item 的迭代器,从而产生结果。如果传递额外的 iterable 参数,function 必须采用多个参数并应用于并行所有迭代中的项目。使用多个迭代器时,当最短迭代器耗尽时,迭代器停止。

In [54]: list1 = [1, 2, 3, 4, 5, 6]

In [55]: list2 = [4, 3, 7, 1, 9]

In [56]: list(map(str, list1))
Out[56]: ['1', '2', '3', '4', '5', '6']

In [57]: list(map(lambda x, y: x+y, list1, list2))
Out[57]: [5, 5, 10, 5, 14]

enumerate

enumerate( iterable, start=0)

返回一个枚举对象。 iterable 必须是一个序列,一个迭代器或其他支持迭代的对象。由 enumerate() 返回的迭代器的 __next__() 方法返回一个元组,该元组包含一个计数(从 start 开始,默认值为 0)以及遍历迭代获得的值。

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

zip

zip(*iterables)

制作一个迭代器,用于聚合来自每个迭代器的元素。

返回元组的迭代器,其中第 i 个元组包含来自每个参数序列或迭代的第 i 个元素。当最短的输入迭代耗尽时,迭代器停止。使用单个迭代参数,它将返回 1 元组的迭代器。没有参数,它返回一个空的迭代器。

与 * 操作符一起使用 zip() 可用于解压缩列表:

>>> x = [1, 2, 3]>>> y = [4, 5, 6]>>> zipped = zip(x, y)>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]>>> x2, y2 = zip(*zip(x, y))>>> x == list(x2) and y == list(y2)
True
data = zip(list1, list2)
data = sorted(data)
list1, list2 = map(lambda t: list(t), zip(*data))

filter

filter(function, iterable)

用那些 function 返回 true 的 iterable 元素构造一个迭代器。iterable 可以是序列,支持迭代的容器或迭代器。如果 function 为 None,则假定标识函数为 false,即为 false 的所有元素都被删除。

# 过滤0-10之间的偶数In [8]: list(filter(lambda x: x%2==0, range(10)))
Out[8]: [0, 2, 4, 6, 8]

reduce

reduce函数的用法和map很类似,也是一个函数f和一个list,但是函数的入口参数一定要是两个,reduce也是对每个元素进行反复调用,最后返回最终的值,而map是返回一个list

python3里面reduce已经从全局函数里面移除了,需要用的话要 from functools import reduce

(0)

相关推荐

  • python中的内置函数

    前言 本人只在csdn写博客 内置函数 介绍 一. 数学运算 abs()求绝对值函数 round() 近似取值 pow()求指数 divmod()求商和余数 max()求最大值和min()求最小值 s ...

  • Learn Functional Python in 10 Minutes | Datacruiser's Blog

    最近在学习python,对函数式编程特别感兴趣,当然,这并不是python的专利,不过最近确实看到一遍文章正好以python为例来讲解函数式编程,特把它翻译过来与大家分享. 原文链接如下: Learn ...

  • Python中的函数式编程教程,学会用一行代码搞定所有内容

    https://m.toutiao.com/is/JEUURVQ/ 前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter ...

  • 30个Python常用极简代码,拿走就能用

    作者丨Fatos Morina 来源丨Python 技术 导读 本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是有没想到的用法. 学 ...

  • Python常用的库简单介绍

    Python常用的库简单介绍一下 fuzzywuzzy ,字符串模糊匹配.   esmre ,正则表达式的加速器.   colorama 主要用来给文本添加各种颜色,并且非常简单易用.   Prett ...

  • Python获取对象信息之内置函数dir()

    对于类对象或实例对象,可以调用内置函数dir()获取其所有可以访问的属性和方法(包括从父类中继承的属性和方法)的列表.类对象与实例对象的结果是有区别的,类对象的结果不包括实例属性. 示例: #codi ...

  • python常用指令

    python常用指令

  • Python中lambda用法和filter()函数

    "微信公众号" 目录 1. lambda用法. 2. filter()用法. 1. lambda用法. Python使用lambda来创建匿名函数. lambda只是一个表达式,函 ...

  • 字符处理文本查找截取常用的10个excel函数公式,上班族职业必备

    个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiRuiExcel) 微信公众号 | Excel函数与公式(ID:ExcelLiRui) 字符处理是每 ...

  • Python常用数据分析库有哪些?五大类介绍

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...

  • python笔记20-获取当前运行函数名

    前言 写完代码之后,一般为了方便查看日志,可以在日志输出中加入当前运行的函数名称或类和方法名称,以便于代码报错的时候能快速找到报错的是哪个函数或方法. 那么如何获取当前运行函数(或方法)的名称呢? 获 ...

  • 高手常用的五个Excel函数公式

    返回最近一天的销售额 公式: =LOOKUP(9^9,B:B) LOOKUP函数常用套路之一,用一个极大的数值9^9,返回查询区域中最后一个数值. 返回间隔分钟数 公式 : =TEXT(B2-A2,' ...