python 内置函数-range()+zip()+sorted()+map()+reduce()+filter()

yizhihongxing

Python内置函数是Python语言的一个基础组成部分,它可以帮助程序员简化代码编写流程。在本文中,我们将会讲解Python内置函数中的 range()、zip()、sorted()、map()、reduce() 和 filter() 函数,以及如何使用它们。

1. range()

range() 函数是Python内置的生成连续整数的函数。range(start, stop, step) 可以生成从 start 到 stop-1 的整数序列,步长为 step。如果只提供一个参数,则默认从0开始生成整数序列,步长为1。

例如,我们可以使用 range() 函数生成 0~4 的整数序列:

for i in range(5):
    print(i)

输出结果为:

0
1
2
3
4

我们也可以使用 range() 生成从 1 到 10 的所有偶数:

for i in range(2, 11, 2):
    print(i)

输出结果为:

2
4
6
8
10

2. zip()

zip() 函数是Python内置函数之一,它将多个可迭代对象中相同索引位置的元素打包成元组,最后返回一个由这些元组组成的迭代器。如果提供的多个可迭代对象长度不同,则以最短的对象为准。

例如,我们可以使用 zip() 函数打包两个列表:

a = [1, 2, 3]
b = ['a', 'b', 'c']
c = zip(a, b)
for i in c:
    print(i)

输出结果为:

(1, 'a')
(2, 'b')
(3, 'c')

当输入多个可迭代对象时,zip()函数将以最短的对象作为循环的次数,例如:

a = [1, 2, 3]
b = ['a', 'b']
c = zip(a, b)
for i in c:
    print(i)

输出结果为:

(1, 'a')
(2, 'b')

3. sorted()

sorted() 函数可以对列表、元组、字典等可迭代对象进行排序。其输入参数为一个可迭代对象,返回一个新的已排序的列表。sorted() 函数的 sorted(iterable, key=None, reverse=False) 参数包含三个,分别为可迭代对象、排序依据的关键字和是否进行降序排列。

例如,我们可以使用 sorted() 函数对一个列表进行排序:

a = [5, 1, 3, 2, 4]
b = sorted(a)
print(b)

输出结果为:

[1, 2, 3, 4, 5]

我们也可以将字符串按照字母表顺序排序:

a = 'hello world'
b = sorted(a)
print(b)

输出结果为:

[' ', 'd', 'e', 'h', 'l', 'l', 'o', 'o', 'r', 'w']

4. map()

map() 函数是Python内置的高阶函数,它将一个函数应用于一个或多个迭代器,返回一个结果迭代器,常用于对列表、元组等数据类型进行批量操作。

例如,我们可以使用 map() 函数将列表的每个元素加一:

a = [1, 2, 3]
b = map(lambda x:x+1, a)
print(list(b))

输出结果为:

[2, 3, 4]

我们也可以使用 map() 函数将两个列表对应的元素相乘:

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

输出结果为:

[4, 10, 18]

5. reduce()

reduce() 函数是Python内置的高阶函数之一,它将一个可迭代对象中的元素通过一个函数进行缩减到单个值。reduce() 函数的输入参数有一个函数和一个可迭代对象,函数用于对两个元素的缩减操作。

例如,我们可以使用 reduce() 函数计算一个列表的累加和:

from functools import reduce
a = [1, 2, 3, 4, 5]
b = reduce(lambda x, y: x+y, a)
print(b)

输出结果为:

15

我们也可以使用 reduce() 函数计算一个列表中的乘积:

from functools import reduce
a = [1, 2, 3, 4, 5]
b = reduce(lambda x, y: x*y, a)
print(b)

输出结果为:

120

6. filter()

filter() 函数是Python内置的高阶函数之一,它对一个可迭代对象进行筛选,返回一个由所有由函数返回 True 的元素组成的迭代器。filter() 函数的输入参数是一个函数和一个可迭代对象,函数用于对元素进行筛选。

例如,我们可以使用 filter() 函数筛选出一个列表中的所有偶数:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = filter(lambda x: x%2==0, a)
print(list(b))

输出结果为:

[2, 4, 6, 8, 10]

我们也可以使用 filter() 函数筛选出一个列表中所有不为空的元素:

a = ['', 'a', '', 'b', 'c', '']
b = filter(lambda x: x!='', a)
print(list(b))

输出结果为:

['a', 'b', 'c']

以上就是 Python 内置函数中 range()、zip()、sorted()、map()、reduce() 和 filter() 函数的完整攻略,通过这些函数的使用可以帮助我们更高效地编写Python代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 内置函数-range()+zip()+sorted()+map()+reduce()+filter() - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • C语言实现简易文本编译器

    C语言实现简易文本编译器 本攻略将介绍如何使用C语言实现一个简易文本编译器。编译器会将输入的文本文件转换为标准的HTML格式并输出到文件中。 准备工作 在开始之前,你需要安装一个C语言编译器,例如gcc或clang,并确保在你的系统上运行正常。你也需要掌握基本的C语言语法。 构建编译器 首先,我们需要将我们的编译器分为两个部分:词法分析器和语法分析器。 词法…

    C 2023年5月23日
    00
  • 解析Node.js异常处理中domain模块的使用方法

    解析Node.js异常处理中domain模块的使用方法 在Node.js中,异常处理是一个非常重要的话题,因为错误的产生是运行环境的本质。Node.js提供了一系列的异常处理工具来帮助我们处理错误,其中就包括domain模块。 什么是domain模块 domain模块是Node.js用于处理异步代码中错误的模块。它允许我们将多个异步操作绑定到一个错误处理上下…

    C 2023年5月23日
    00
  • 详解C++11中的线程库

    详解C++11中的线程库 C++11引入了线程库,这使得C++程序员可以轻松地编写多线程应用程序。线程库提供了一个标准化的方式来执行并发任务和同步不同线程之间的访问。 基础概念 线程的创建和执行 线程是计算机系统执行的最小的单位。在C++11中,线程的创建和执行非常简单,并且通过std::thread类实现。 我们可以使用std::thread对象的构造函数…

    C 2023年5月22日
    00
  • C++中对象与类的详解及其作用介绍

    C++中对象与类的详解及其作用介绍 什么是对象? 在面向对象编程语言中,可以通过类来定义对象。对象是类的一个实例化,是由数据和方法组成的。 一个类可以被当作模板,从而创建多个对象。每个对象都可以访问类中的方法和变量,但是每个对象都有自己的一套数据副本。 什么是类? 类是一种用户定义的数据类型,它封装了数据和方法。数据成员表示类的属性,方法成员表示类的操作。 …

    C 2023年5月22日
    00
  • 安全账户管理器初始化失败 lsass.exe 0XC0000(SAM文件问题)

    安全账户管理器(LSASS,Local Security Authority Subsystem Service)是Windows操作系统中非常重要的一个组件,负责用户身份鉴定、安全策略实施等工作。如果在启动或者使用Windows操作系统时,出现了“安全账户管理器初始化失败 lsass.exe 0XC0000(SAM文件问题)”的错误提示,这通常是由于系统文…

    C 2023年5月23日
    00
  • ps怎么快速插入数学公式?

    当我们在进行数学相关的文章编辑或排版工作时,需要使用到数学公式。Adobe Photoshop是一款非常常用的图像处理软件,但由于其不是专门用于排版的软件,因此没有内置插入数学公式的功能。但是我们可以借助一些第三方插件完成这一任务。 下面是在PS中快速插入数学公式的完整攻略: 步骤1:安装LaTeX插件 由于LaTeX语言是科学、工程、数学领域中最常用的排版…

    C 2023年5月22日
    00
  • java15新功能的详细讲解

    Java 15 新功能的详细讲解攻略 简介 Java 15 是 Java 编程语言的最新版本,于 2020 年 9 月发布。它包含了多项新增功能和改进,如 ZGC 改进、密封类、预览特性、记录类型等。 本攻略将详细介绍 Java 15 的新功能,以及如何使用这些新功能来提高开发人员的效率以及增强代码可读性。 密封类 Java 15 引入了密封类(sealed…

    C 2023年5月23日
    00
  • C++中实现OpenCV图像分割与分水岭算法

    C++中实现OpenCV图像分割与分水岭算法攻略 1. 简介 图像分割是指将一幅图像分成若干个互不重叠、尽可能相似的区域,这些区域称之为图像分割区域。图像分割是图像处理、计算机视觉、模式识别等领域的一个重要问题,其应用广泛,如医学影像分析、自动驾驶、安防监控等。OpenCV是一个非常常用的计算机视觉库,提供了许多图像处理算法,其中包括了分水岭算法。 分水岭算…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部