本篇内容介绍了“python列表生成器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
列表生成式基础语法
[exp for iter_var in iterable (if conditional)]
原理:
首先迭代 iterable 里所有内容,每一次迭代,都把iterable里相应的内容放在iter_var中,再把表达式exp应用该iter_var的内容,根据条件进行筛选
最后用 表达式的计算值 生成一个新的列表
优先于for和if循环:
比for循环快得多
被认为比循环和映射函数更具有python特性
列表生成式的语法更容易阅读
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 63 8 116 9 15keys = ['a','c','f']vals = [1,7,3]D2 = {}for (k,v) in zip(keys,vals): D2[k]=vprint(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 spring1 summer2 winter
“python列表生成器怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!