列表生成式的语法:
#循环for... in...一次,执行一次expression表达式,
#for in 循环,满足condition条件判断,执行左侧expression
[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
类似于
res=[] for item1 in iterable1: if condition1: for item2 in iterable2: if condition2 ... for itemN in iterableN: if conditionN: res.append(expression)
生成表达式:
(expression for item1 in iterable1 if condition1 for item2 in iterable2 if condition2 ... for itemN in iterableN if conditionN )
优点:省内存,一次值产生一个值在内存中
应用:读取一个大文件的所有内容,并处理行
f=open('a.txt')
g=(line.strip() for line in f)
list(g) #因g可迭代,因而可以转成列表