python列表生成器常用迭代器示例详解
作者:测试开发技术修炼 时间:2023-11-16 01:35:12
列表生成式基础语法
[exp for iter_var in iterable (if conditional)]
原理:
首先迭代 iterable 里所有内容,每一次迭代,都把iterable里相应的内容放在iter_var中,再把表达式exp应用该iter_var的内容,根据条件进行筛选
最后用 表达式的计算值 生成一个新的列表
优先于for和if循环:
1、比for循环快得多
2、被认为比循环和映射函数更具有python特性
3、列表生成式的语法更容易阅读
1. 使用列表生成式,一行解决for循环
# 实现[1,2,3,4,5]的列表
alist1 = list(range(1,6))
print(alist1)
# 实现[1,4,9,16,25,36,49]的列表
alist2 = []
for i in range(1,8):
alist2.append(i*i)
print(alist2)
# 用一行实现
alist = [i*i for i in range(1,8)]
print(alist)
#结果:
[1, 2, 3, 4, 5]
[1, 4, 9, 16, 25, 36, 49]
[1, 4, 9, 16, 25, 36, 49]
2. 双层循环
list2 = [x+y for x in range(1,5) for y in range(1,6)]
#结果:
[2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 5, 6, 7, 8, 9]
3. 加判断语句,条件过滤
list3 = [x for x in range(1,10) if x>5]
print(list3)
#结果:
[6, 7, 8, 9]
4. 加入函数
L = ['Heli','JACK','ab']
l1 = [i.lower() for i in L]
print(l1)
#结果:
['heli', 'jack', 'ab']
5. 常见几种迭代器:range、 zip 、 enumerate 、 filter 、 reduce
zip生成列表,生成字典
zip()函数接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),返回由这些元组组成的list列表
l1 = [1,3,6]
l2 = [5,8,9]
for (x,y) in zip(l1,l2):
print(x,y,x+y)
#结果:
1 5 6
3 8 11
6 9 15
keys = ['a','c','f']
vals = [1,7,3]
D2 = {}
for (k,v) in zip(keys,vals): D2[k]=v
print(D2)
#结果:{'a': 1, 'c': 7, 'f': 3}
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中
enumerate(seq, [start=0]) ,返回枚举对象
seasons = ['spring', 'summer', 'winter']
a = list(enumerate(seasons))
for i,element in enumerate(seasons):
print(i,element)
#结果:
0 spring
1 summer
2 winter
关于filter 、 reduce,具体可查看上一篇文章
python高阶函数使用教程示例
来源:https://www.jianshu.com/p/483c58441020
标签:python,列表生成器,迭代器
0
投稿
猜你喜欢
用python批量移动文件
2022-12-21 10:48:43
Python 绘图和可视化详细介绍
2021-02-16 18:17:31
python实现关键词提取的示例讲解
2021-09-02 05:38:58
可视化工具PyVista多线程显示多窗口的实例代码
2023-03-17 07:46:28
python 把文件中的每一行以数组的元素放入数组中的方法
2023-04-15 23:14:37
python-地图可视化组件folium的操作
2023-10-28 14:48:31
AlmaLinux 9 安装 MySQL 8.0.32的详细过程
2024-01-21 21:38:36
Python中datetime常用时间处理方法
2022-05-03 16:07:06
flask应用部署到服务器的方法
2023-11-25 16:59:38
asp如何用FSO对象显示一个文本文件?
2010-06-09 18:41:00
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2023-08-29 03:43:39
Go语言基础设计模式之策略模式示例详解
2024-05-25 15:11:01
Python 十大经典排序算法实现详解
2021-10-01 02:55:24
MySQL之information_schema数据库详细讲解
2024-01-16 18:56:54
python的keyword模块用法实例分析
2022-04-06 07:56:22
用python的seaborn画数值箱型图
2021-04-26 20:43:04
vue+swiper实现组件化开发的实例代码
2024-06-05 15:30:09
线上MySQL的自增id用尽怎么办
2024-01-22 01:39:38
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2023-03-03 23:30:29
Go语言的GOPATH与工作目录详解
2023-08-29 06:54:04