IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python程序设计基础(五) -> 正文阅读

[Python知识库]Python程序设计基础(五)

目录

第一部分:zip遍历

第二部分:流函数输入输出

(1)map()遍历

?(2)reduce迭代累积

(3)filter判定

第三部分:枚举


第一部分:zip遍历

在python中,通过zip()函数,可以把多个可迭代对象中的元素压缩到一起,返回一个可迭代对象。借助list,zip()函数将每个可迭代对象中的对应位置元素压缩,直观地形成一个元组序列。zip()参数可以接受任何类型序列对象,元组中最终元素的个数取决于可迭代对象中最短的那个。

没有参数时,zip()函数会返回一个空的元组序列。若只含有一个可迭代对象,zip()函数会将第二个可迭代对象以空序列表示。

>>> zip('want','456')
<zip object at 0x0000022BA89E0500>
>>> list(zip('want','456'))
[('w', '4'), ('a', '5'), ('n', '6')]

另外,要注意,zip()对象只能遍历一次,第一次遍历后,内存已被释放,第二次遍历显示为空。

>>> num=zip('abcd','0123')
>>> list(num)
[('a', '0'), ('b', '1'), ('c', '2'), ('d', '3')]
>>> list(num)
[]

第二部分:流函数输入输出

Python中,常用的函数map()、reduce()、filter(),

(1)map()遍历

map是python内置函数,功能性强,会根据提供的函数对指定的序列做映射。内置函数map()可以把一个函数func依次映射到目标对象的每个相应元素上。map()函数不会对原序列或者迭代对象做出修改。

>>> list(map(int,range(6)))
[0, 1, 2, 3, 4, 5]
>>> def adds(x):
    return x+2
>>>list(map(adds(5),range(10)))
[5,6,7,8,9,10,11,12,13,14]

?(2)reduce迭代累积

接下来,说明下reduce()函数,由于Python各版本的持续更新,用户普遍用的都是Python3.x,在Python3.x中,reduce()函数不再是内置函数,而是要通过导入标准库functools。reduce与map()不同,reduce接收两个参数的函数以迭代累积的方式依次对对象操作。先看一串代码:

from functools import reduce
>>> reduce(lambda x,y : x+y ,[1,2,3,4,5])
15

结果确定是,列表五个数进行累加,可是它是如何实现操作的呢?

lambda是对x,y加法运算,?1+2=3赋值给下一个x,而y的值,轮流从列表往下取实现累加。reduce函数有三个参数,第一个参数就是作用函数,第二个函数就是可迭代的对象,第三个是迭代初始值。通过导入标准库operator可以实现累乘作用。

(3)filter判定

内置函数filter()作用是将一个单参数函数作用到一个序列上,返回该序列中使用该函数返回值为True的元素组成的fiter对象,简单来说它就相当于一个过滤器。格式为filter(function, iterable)。

>>> def odds(n):
...     if n % 2 != 0: return True
...     return False
>>> new_list = filter(odds,[1,2,3,4,5])
>>> print(new_list)
<filter object at 0x000001F53A481CC0>
>>> list(new_list)
[1, 3, 5]

这三个函数是Python支持函数编程的重要体现,函数式编程,把问题分解为一系列的函数操作,输入依次流入和流出一系列函数,最终完成预定任务和目标。函数式编程思想,使得程序更加模块化,提高效率与代码复用率。

第三部分:枚举

在C语言中,一般通过while()循环来实现枚举,或者用专门的enum函数,当然Python中也亦如此,通过使用enumerate()函数,来枚举可迭代对象中的元素,返回的可迭代enumerate对象,其中每个元素都是包含索引和值的元组。enumerate函数中还支持start参数,用来指定索引起始值。

>>> enumerate('apple')
<enumerate object at 0x00000201DA1F0540>
>>> list(enumerate('apple'))
[(0, 'a'), (1, 'p'), (2, 'p'), (3, 'l'), (4, 'e')]
>>> list(enumerate('bananas',4))
[(4, 'b'), (5, 'a'), (6, 'n'), (7, 'a'), (8, 'n'), (9, 'a'), (10, 's')]

?这里的枚举遍历与zip()同样,在一次遍历后内存被释放。

>>> num=enumerate('apple')
>>> list(num)
[(0, 'a'), (1, 'p'), (2, 'p'), (3, 'l'), (4, 'e')]
>>> list(num)
[]
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:28:10  更:2022-01-17 11:29:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:45:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码