Python之字典生成式

                                            字典生成式示例


一、例如生成字典{'java': 89, 'python': 90, 'perl': 91}

b = ['java','python','perl']
s = [89,90,91]
d = {}

# for in 循环
for i,j in zip(b,s):
    d[i] = j
print(d) #{'java': 89, 'python': 90, 'perl': 91}

# 字典生成式
d = {i:n for i,n in zip(b,s)}
print(d) #{'java': 89, 'python': 90, 'perl': 91}


二、添加if判断

d = {}
for i,n in zip(b,s):
    if n >= 90:
        d[i] = n
print(d) #{'python': 90, 'perl': 91}
d = {i:n for i,n in zip(b,s) if n >=90 }
print(d) #{'python': 90, 'perl': 91}


三、双重循环

d = {}
#双重for in 循环
for i in range(1,4):
    for n in range(1,4):
        d[i] = n
print(d) #{1: 3, 2: 3, 3: 3} 因为key唯一,后面的key:value都被1:3 2:3 3:3覆盖掉了

# 字典生成式
d = {i:n for i in range(1,4) for n in range(1,4)}
print(d) # {1: 3, 2: 3, 3: 3}


四、双重循环,嵌套if

d = {}
# 双重for in循环,嵌套if
for i in range(1,4):
    for n in range(1,4):
        if n < 3:
           d.update([(i,n)])
print(d) #{1: 2, 2: 2, 3: 2}

# 字典生成式
d = {i:n for i in range(1,4) for n in range(1,4) if n <3}
print(d) #{1: 2, 2: 2, 3: 2}