1. 程式人生 > >函數 三元表達式 列表生成式 字典生成式 生成器表達式

函數 三元表達式 列表生成式 字典生成式 生成器表達式

生成器 next 返回 生成 一個 Go pre 而是 def

1、三元表達式

針對 if 條件判斷的簡寫

可以比較下比如:

def max2(x,y):
    if x > y:
        return x
    else:
        return y
max2(20,30)
=================================================
x=10
y=20
res=x if x > y else y
print(res)

真正的核心代碼從4條變成了一條就可以解決了

代碼形式:條件成立時的返回值 if 條件 else 條件不成立時的返回值


2、 列表生成式

也是簡寫代碼的一種

咱們按照上面的套路舉例

names=[jxx,yxx,cxx]
#這是咱們之前學過的知識運用
l=[]
for name in names:
    if name != yxx:
        l.append(name + SB)
names=l
#列表生成式
names=[name+SB for name in names if name != yxx]
print(names)

代碼形式: [ 所要執行的代碼 左邊 for 循環 右邊 if 判斷]


3、字典生成器

在說字典解釋器之前我先介紹下一個函數

zip()稱之為拉鏈函數 故名思意 就是把兩個元素 鏈在一起

s1=hello
l1=[1,2,3,4,5]

res=zip(s1,l1)
#而res在python3中不是一個值而是一個叠代器對象
print(res)
print(list(res))
生成的是
[(h, 1), (e, 2), (l, 3), (l, 4), (o, 5)]

接下來我們來演示字典生成器

keys=[name,age,sex]
values=[egon,18,male]
#常規的代碼
d={}
for k,v in zip(keys,values):
    d[k]=v
print(d)
#字典生成器的代碼
d={k:v for
k,v in zip(keys,values)} print(d) 顯示的是 {name: egon, age: 18, sex: male}

4、生成器表達式

本身就是叠代器

l=[egg%s %i for i in range(100)]
 print(l)
這個會直接把值全部打印出來 如果數據過大 會導致內存吃不消

g=(egg%s %i for i in range(1000000000000))
print(g)#叠代器對象
print(next(g))
print(next(g))
一個一個取出來

函數 三元表達式 列表生成式 字典生成式 生成器表達式