列表生成表达式语法

列表生成式的语法:

#循环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可迭代,因而可以转成列表

原文地址:https://www.cnblogs.com/catherine007/p/8321835.html