python列表生成器常用迭代器示例详解

python列表生成器常用迭代器示例详解

目录

列表生成式基础语法

1. 使用列表生成式,一行解决for循环

2. 双层循环

3. 加判断语句,条件过滤

4. 加入函数

5. 常见几种迭代器:range、 zip 、 enumerate 、 filter 、 reduce

列表生成式基础语法

[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高阶函数使用教程示例

以上就是python列表生成器常用迭代器示例详解的详细内容,更多关于python列表生成器迭代器的资料请关注易知道(ezd.cc)其它相关文章!

推荐阅读