1.三元表達式
格式為:條件成立時的返回值 if 條件 else 條件不成立時的返回值

總結:多行判斷,一行代碼解決。就是一條if判斷的簡寫代碼語法
2.列表生成式 方括號【】
快速生成一個列表,也是一條簡寫代碼語法
格式: l=[item**2 for item in range(1,11)]
print (l)
names=['alex,'wxx','lxx']
names=[name+'sb' for name in names] #循環列表並在每個字符串后加sb
print (names)
# names=[name+'SB' for name in names if name != 'egon'] #還可以結合if判斷
# print(names)
3.字典表達式: 花括號{}
s1='hello'
l1=[1,2]
res=zip(s1,l1) #res迭代器對象 zip把s1和l11 對應壓縮 (拉鏈式) 配對取出對應的值 多出的就不用了
print(list(res)) 列表都是全部取出 () res迭代器不運行,next才執行代碼,next一次取一次
# keys=['name','age','sex']
# values=['egon',18,'male']
# d={k:v for k,v in zip(keys,values)} #字典的壓縮壓
# print(d)

通過迭代器對象取值,可以起到節約內存的作用
4.生成器表達:小括號()
g=(i for i in range(10)) “”定義為迭代器對象不執行代碼,直到next才執行一次代碼
pirnt (g) #定義為迭代器對象(內存地址),不占內存,取值的時候在一個個取出
print(next(g))
pirnt(next(g))
max #可迭代對象 循環next取值比較大小
# nums=[11,22,33,44,55]
# print(max(nums)) #循環取值比較大小
# with open('a.txt',encoding='utf-8') as f:
# nums=(len(line) for line in f) 定義為生成器 就是迭代器不執行代碼,next才執行一次代碼,取一次值就少一次
# print(max(nums)) 如果定義為nums=[len(line) for line in f]就不會報錯 因為列表會把所有的值列出了
# print(max(nums))
# print(max(nums) 在運行的時候就會報錯,因為文件已經關閉
