一、三元表达式
print(条件成立时的返回值 if 条件 else 条件不成立时的返回值)
x=1 y=3 print(y if x>y else x)
二、列表生成式
l=[i**3 for i in range(3)] print(l)
三、字典生成式
s="@@" l=[1,2,3] res=zip(s,l) # <zip object at 0x0000021F3DC6CB48> print(list(res)) #元组形式的列表(一一对应,多余的不会组成元组) print(type(zip(s,l))) #<class 'zip'>
生成字典
keys=["name","age","sex"] values=["Namy",18,"female"] res=zip(keys,values) print(res) # <zip object at 0x000001BE6751CC08> print(list(res)) # [('name', 'Namy'), ('age', 18), ('sex', 'female')] d={} for k,v in zip(keys,values): d[k]=v print(d) # {'name': 'Namy', 'age': 18, 'sex': 'female'}
d={k:v for k,v in zip(keys,values)} print(d)
四、生成器表达式
g=(i for i in range(6)) print(g) #<generator object <genexpr> at 0x000001A808412C50> print(next(g))
统计文件中某行的字符长度最多
with open("a.txt",encoding="utf-8") as f: nums=(len(line) for line in f) print(max(nums))
例子:
l=["sb%s" %i for i in range(99)] pirnt(l) # 一次性生成99个sb g=("sb%s"%i for i in range(99)) print(g) #此时的g是一个生成器,并没有直接将99个值全部一次性取出 print(next(g)) #需要一个取出一个即可