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

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++中普通旧数据(POD)的使用

    详解 C++ 中普通旧数据(POD)的使用 什么是 POD 类型 C++ 中的 POD 类型代表的是“普通的旧数据”(Plain Old Data),也就是可以被赋初值、拷贝、比较和操纵的数据结构。如果一个数据结构不是 POD 类型,则它就不一定可以简单拷贝或赋值,否则很可能导致内存泄漏和 UB(未定义行为)。 POD 类型有以下三个特点: 1.它们的所有成…

    C 2023年5月23日
    00
  • 关于C语言中参数的传值问题

    关于C语言中参数的传值问题 在C语言中参数的传递方式有两种:传值(Call by Value)和传址(Call by Reference)。 传值(Call by Value) 对于传值方式,函数只能访问传递进来的参数的值,无法修改传递进来的参数本身。传递的是参数的复制品而不是原始参数。 以下是传值方式的示例代码: #include <stdio.h&…

    C 2023年5月23日
    00
  • C语言预编译#define(预处理)

    C语言预处理#define的完整攻略 什么是C语言预处理 C语言预处理是在编译阶段之前进行的一些预处理操作,包括文件包含、宏定义、条件编译等等。其中,宏定义是其中最为常见的预处理操作,它使用预处理指令#define来定义一个标识符,以便在代码中进行替换。 预处理指令#define的语法 预处理指令#define的语法如下: #define 标识符 替换文本 …

    C 2023年5月23日
    00
  • C++实现图书馆管理系统

    C++实现图书馆管理系统 概述 图书馆管理系统是一种基于计算机技术的,将各种机械设备取代,并能够更好地服务大众的管理系统。其原理是以计算机为核心,采用自动化技术,计算机网络技术,数据采集技术等先进技术对图书馆藏书、读者、借还书等活动进行管理。 使用C++编程语言进行开发,能够使用面向对象的编程技术,使得代码结构清晰,易于维护和扩展。在此,将介绍如何使用C++…

    C 2023年5月23日
    00
  • C语言 strrchr()函数

    C语言strrchr()函数使用攻略 1. 介绍 C语言中的strrchr()函数用于查找字符串中最后一次出现某个字符的位置,即在一个字符串中从后向前查找第一次出现指定字符的位置。strrchr()函数在头文件string.h中声明,函数原型为: char *strrchr(const char *s, int c); 2. 参数 strrchr()函数的参…

    C 2023年5月9日
    00
  • C++消息队列(定义,结构,如何创建,发送与接收)

    下面是C++消息队列的完整攻略。 定义 C++消息队列是一种多线程之间通讯的方式,其实现了线程之间的异步通信机制。消息队列基于先进先出的原则,消息发送者将消息依次放入消息队列的尾部,消息接收者从队列的头部依次取出消息进行处理。 结构 消息队列的结构一般分为三个部分: 队列存储空间:为消息存储提供空间。 发送者:将消息放入队列中。 接收者:从队列中取出消息进行…

    C 2023年5月23日
    00
  • C++模拟如何实现vector

    C++ 的 vector 是一种非常常用的容器,可以动态地增加和减少容器的大小,而且支持迭代器进行遍历操作。下面是实现 vector 的大致思路: 维护一个动态分配的数组,用于存储元素。一开始先给数组申请一段较小的内存空间,以后随着元素的增加,当数组已满时再重新申请一段更大的内存空间,并将原先的元素复制到新的内存空间中。 记录当前存储的元素个数和数组的容量。…

    C 2023年5月22日
    00
  • 浅析C++内存布局

    浅析C++内存布局 C++是一门面向过程的编程语言,与其他编程语言一样,C++也有自己的内存布局。 内存布局基本概念 堆 使用new或malloc操作后存放动态分配的数据的区域。 栈 用于存放程序运行时的函数栈帧,栈帧将在函数执行完后自行清除。 全局变量区 在程序运行前就分配好的存放全局变量的区域,该区域分为静态区和可读写区。 常量区 存放程序中常量的区域,…

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