python推导式(列表,字典,集合)

1.推导式的优点

让烦杂的代码变得简单易看,也减少我们写的代码量。

我们来举个例子,建立一个0到10立方的列表:

当不使用推导式的话写出来是这样的:

list = []
for i in range(11):
    list.append(i*i*i)
print(list)

输出结果:

[0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

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

[i*i*i for i in range(11)]

输出结果:

[0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

2.推导式的语法

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

3.列表推导式

例子1:输出一个100以内3的倍数的列表

[result for i in range(100) if i%3==0]

输出结果:

[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

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

[i*i for i in range(10) if i%2==0]

输出内容:

[0, 4, 16, 36, 64]

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

list = ['liyuanfang','yuange','zhugeliang','yao']
[name.title() for name in list if len(name)>6]

输出结果:

[‘Liyuanfang’, ‘Zhugeliang’]

4.字典推导式

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

list = ['liyuanfang','yuange','zhugeliang','yao']
{name:len(name) for name in list if len(name)>6}

输出内容:

{‘liyuanfang’: 10, ‘zhugeliang’: 10}

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

list_1 = ['liyuanfang','yuange','zhugeliang','yao']
list_2 = [160,175,180,155]
{name:high for name,high in zip(list_1,list_2)}

输出内容:

{‘liyuanfang’: 160, ‘yuange’: 175, ‘zhugeliang’: 180, ‘yao’: 155}

5.集合推导式

跟字典的使用差不多

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

{i*i for i in range(10) if i%2==0}

输出内容是:

{0, 64, 4, 36, 16}

因为是set,所以返回的值顺序在不通机器上可以不一致欧~
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值