推导表达式 列表、集合、字典以及生成器都可以使用推导式来创建;
列表
res = [ord(x) for x in 'spaam']
output >>> res
[115, 112, 97, 97, 109]
集合
res = {ord(x) for x in 'spaam'}
output >>> res
{112, 97, 115, 109}
字典
res = {x: ord(x) for x in 'spaam'}
output >>> res
{'s': 115, 'p': 112, 'a': 97, 'm': 109}
生成器
res = (ord(x) for x in 'spaam')
output >>> res
<generator object at 0x0000025AEC10CC10>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 推导公式
列表推导式
[<表达式> for <变量> in <可迭代对象> if <逻辑条件>]
字典推导式
{<键值表达式>:<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
集合推导式
{<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
生成器推导式
(<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>)
返回一个生成器对象,也是可迭代对象,但是生成器并不立即产生全部元素,仅在要用到元素的时候才生成,可以极大节省内存
1 2 3 4 5 6 7 8 9 10 11 12 列表推导式 列表推导式是写在一个方括号中,构建一个新的列表的方式;
在日常使用当中,使用列表推导式替代for循环语句可以提高执行效率;
简单的列表推导式
推导式形式
L = [1, 2, 3, 4, 5] res = [i + 10 for i in L]
for循环语句形式
res = [] for i in L: res.append(i + 10)
output >>> res
[11, 12, 13, 14, 15]
1 2 3 4 5 6 7 8 9 10 11 12 13 推导公式
[输出表达式 for 变量 in 输入序列] 1 嵌套循环(for) 两个不同的列表
推导式形式
res = [x + y for x in 'abc' for y in 'efg']
for循环语句形式
res = [] for x in 'abc': for y in 'efg': res.append(x + y)
output >>> res
['ae', 'af', 'ag', 'be', 'bf', 'bg', 'ce', 'cf', 'cg'] 1 2 3 4 5 6 7 8 9 10 11 推导公式
[输出表达式 for 变量1 in 输入序列1 for 变量2 in 输入序列2] 1 一个列表
推导式形式
L = ['abcdef', 'gggg'] res = [print(i) for x in L for i in x]
for循环语句形式
for x in L: for i in x: print(i)
output >>>
a b c d e f g g g g 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 推导公式
[输出表达式 for 变量1 in 输入序列 for 变量2 in 变量1] 1 for 与 if 组合
推导式形式
L = [1, 2, 3, 4, 5] res = [i for i in L if i > 3]
for循环与if分句组合形式
res = [] for i in L: if i> 3: res.append(i)
output >>> res
[4, 5]
1 2 3 4 5 6 7 8 9 10 11 12 13 推导公式
[输出表达式 for 变量 in 输入序列 if 可选的判断表达式]
输出表达式,产生最终列表的元素
变量,表示输入序列里面的元素
输入序列
可选的判断表达式
———————————————— 版权声明:本文为CSDN博主「浮世绘太空」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/weixin_4096…