目录生成式基础语法
[expforiter_variniterable(ifconditional)]

基本原理: 最先迭代更新iterable里全部内容,每次迭代更新,都把iterable里对应的具体内容放在iter_var中,然后把关系式exp运用该iter_var的具体内容,依据标准进行分类,然后用关系式计算值形成一个全新的目录。先于for和if循环系统:
- 比for循环快得多
- 被视为比循环系统和映射函数更加具有python特点
- 目录生成式的词法比较容易阅读文章
应用目录生成式
一列处理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 if 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]
两层循环系统
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]
加判断语句,标准过虑
list3=[x for x in range(1,10) if x>5]
print(list3)
#结论:
[6,7,8,9]
添加函数公式:
L=['Heli','JACK','ab']
l1=[i.lower() for i in L]
print(l1)
#结论:
['heli','jack','ab']
普遍几类迭代器: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和vals分别是目录的键和值:
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循环中:
seasons = ['spring', 'summer', 'winter']
a = list(enumerate(seasons))
for i, element in enumerate(seasons):
print(i, element)
#结论:
0 spring
1 summer
2 winter
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6625.html
