列表表达式

程序一:

常规写法:

egg_list=[]

for i in range(100):
    egg_list.append('egg%s' %i)
print(egg_list)

列表表达式写法:

l=['egg%s' %i for i in range(100) if i > 0]  #列表写法:[命令+循环语句]。'egg%s' %i 这句话在列表中,所以不用append命令写入列表中
print(l)

 

程序二:

常规写法:

l=[1,2,3,4]
s='hello'
l1=[]
for num in l:
    for s1 in s:
        t=(num,s1)
        l1.append(t)
print(l1)

列表表达式写法:

l1=[(num,s1) for num in l if num > 0 for s1 in s]  #if num >0 这句判断可以去掉
print(l1)

 

程序三:

常规写法:

import os
#查看xuyaping文件夹所有的绝对路径 g=os.walk('F:\\xuyaping') file_path_list=[] for i in g: # print(i) for j in i[-1]: file_path_list.append('%s\\%s' %(i[0],j)) print(file_path_list)

列表表达式写法:

g=os.walk('F:\\xuyaping')
l1=['%s\\%s' %(i[0],j) for i in g for j in i[-1]]
print(l1)

 

 

生成器表达式

相比列表表达式,只不过将[]换成了(),更加省内存。

程序一:

列表表达式写法:

l=['egg%s' %i for i in range(10000)]
print(l)

生成器表达式写法:

g=l=('egg%s' %i for i in range(10000))
print(g)
print(next(g))
print(next(g))
for i in g:
    print(i)

 

程序二:

常规写法:

f=open('a.txt')
l=[]
f.seek(0) #光标移动到文档首行首位 for line in f: line=line.strip() l.append(line) print(l)

列表表达式写法:

f=open('a.txt')
f.seek(0)
l1=[line.strip() for line in f]
print(l1)

生成器表达式写法:

f=open('a.txt')
f.seek(0)
g=(line.strip() for line in f)
print(g)
print(next(g)) 

  

程序三:

生成器表达式写法:

f=open('a.txt')
g=(line.strip() for line in f)  #g为迭代器

l=list(g)   #list(可迭代对象),迭代取出g中的所有内容 
print(l)
---->['asdfasdfasdfasdfasdf', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '123123123123', '', 'asdfasdfasdfasdf']


nums_g=(i for i in range(3))

# print(sum([1,2,3,4]))
print(sum(nums_g))   #sum(可迭代对象),迭代将g中的所有元素相加 
 1                  asdfasdfasdfasdfasdf
 2      123123123123
 3      123123123123
 4      123123123123
 5      123123123123
 6      123123123123
 7      123123123123
 8      123123123123
 9      123123123123
10      123123123123
11      123123123123
12      123123123123
13      123123123123
14      123123123123
15      123123123123
16      123123123123
17      123123123123
18      123123123123
19      123123123123
20      123123123123
21 123123123123
22 
23 asdfasdfasdfasdf
a.txt

相关文章:

  • 2022-02-17
  • 2022-03-10
  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
  • 2021-07-01
  • 2021-06-03
  • 2022-12-23
相关资源
相似解决方案