Python3入门与进阶——列表推导式

内容很简单,看例子就可以理解。

a=[0,1,2,3,4,5,6,7,8,9,]
b=[i**2 for i in a]#输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(b)
c=[i**2 for i in a if i >= 5]#输出:[25, 36, 49, 64, 81]
print(c)
d={i**2 for i in a if i >= 5}#输出(无序):{64, 36, 81, 49, 25}
print(d)
e=(i**2 for i in a if i >= 5)#得到一个可遍历对象,不建议用元组,容易出错。输出:<generator object <genexpr> at 0x0057EF40>
print(e)
for little_e in e:#用这种方式打印元组里的各项元素
    print(little_e)
f=[i**2 if i<5 else i**3 for i in a]#加上一个三元表达式,输出:[0, 1, 4, 9, 16, 125, 216, 343, 512, 729]
print(f)
g=[i**2 if i<5 else i**3 for i in a if i >= 2]#三元表达式加筛选,输出:[4, 9, 16, 125, 216, 343, 512, 729]
print(g)

格式为:操作+for in遍历+遍历对象筛选

生成对象用什么括起来结果就得到什么类型的对象。(列表、集合、元组)

 

字典的列表推导式:

students={
    '齐天大圣':'孙猴子',
    '托塔天王':'李靖'
}
h=[key for key in students.keys()]#输出:['齐天大圣', '托塔天王']
print(h)
i=[value for value in students.values()]#输出:['孙猴子', '李靖']
print(i)
j=[key for key,value in students.items()]#输出:['齐天大圣', '托塔天王']
print(j)
k=[value for key,value in students.items()]#输出:['孙猴子', '李靖']
print(k)

#上面的四个可以选择:[] {} (),下面只能用: {}

l={key:value for key,value in students.items()}#输出:{'齐天大圣': '孙猴子', '托塔天王': '李靖'}
print(l)
m={value:key for key,value in students.items()}#输出:{'孙猴子': '齐天大圣', '李靖': '托塔天王'}
print(m)
发布了48 篇原创文章 · 获赞 17 · 访问量 1152

猜你喜欢

转载自blog.csdn.net/weixin_45850939/article/details/104616239