十四、python推导式的使用方法详解,列表推导式,字典推导式,集合推导式

1、推导式的好处,让烦杂的代码变得简单易看,也减少我们写的代码量,我们来举个例子,建立一个0到9平方的列表

用以前的学习的内容,写出来是这样的

lis = []
for i in range(10):
    lis.append(i*i)
print(lis)
#输出结果是[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

如果你用推导式写的话就是这样

[i*i for i in range(10)]
#输出结果是[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2、推导的基本结构

[变量 for 变量 in 条件 if 条件判断]

3、列表推导式的使用

例子1、输出一个10以内的偶数的平方的列表

[i*i for i in range(10) if i%2==0]
#输出结果是[0, 4, 16, 36, 64]

例子2、输出一个10以内的基数的平方的列表

[i*i for i in range(10) if i%2!=0]
#输出内容是[1, 9, 25, 49, 81]

例子3、建立一个名字的列表,然后把名字长度大于5的名字提取出来,把首字母大写后弄成一个新的列表

lis = ['xiaoj','xiaoming','xiaogou']
[name.title() for name in lis if len(name)>5]
#输出结果是['Xiaoming', 'Xiaogou']

4、字典推导式的使用

例子1、建立一个名字的列表,然后把名字长度大于5的名字提取出来,用名字作为字典的key,名字的长度做为字典的value,建立一个新的字典

lis = ['xiaoj','xiaoming','xiaogou']
{name:len(name) for name in lis if len(name)>5}
#输出内容是{'xiaoming': 8, 'xiaogou': 7}

例子2、建立一个名字的列表,建立一个身高的列表,把它们组合成一个新的字典

lis_1 = ['xiaoj','xiaoming','xiaogou']
lis_2 = [170,175,180]
{name:high for name,high in zip(lis_1,lis_2)}
#输出内容是{'xiaoj': 170, 'xiaoming': 175, 'xiaogou': 180}

5、集合推导式的使用,跟字典的使用差不多

例子1、输出一个10以内的偶数的平方的集合

{i*i for i in range(10) if i%2==0}
#输出内容是{0, 4, 16, 36, 64}

推导式的使用就讲解到这里,大家有问题欢迎评论

猜你喜欢

转载自blog.csdn.net/u010590983/article/details/89916441