python 推导_Python 推导式

Python 语言有一种独特的语法,它可以用最简单的方式生成一个列表、元组或字典,它们叫推导式。

常见的推导式:

列表推导式

字典推导式

集合推导式

列表推导式

列表推导式可以快速生成一个列表,其语法格式为:

>>> [x * x for x in range(6)] # 结果:[0, 1, 4, 9, 16, 25]

# 相当于

l = []

for x in range(6):

l.append(x)

要生成的元素 x*x 在前面,后面跟 for 循环。后面也可以再跟 if 判断:

>>> [x * x for x in range(6) if x % 2 == 0]

[0, 2, 4]

# 相当于

l = []

for x in range(6):

if x % 2 == 0:

l.append(x)

print(l)

两层循环(三层很少),生成全排列:

>>> [x+y for x in 'abc' for y in '123']

['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']

# 相当于

l = []

for x in 'abc':

for y in '123':

l.append(x+y)

print(l)

循环多个变量:

>>> d = {'name': 'rose', 'gender': 'female'}

[k + ':' + v for k, v in d.items()]

['name:rose', 'gender:female']

# 相当于

l = []

d = {'name': 'rose', 'gender': 'female'}

for k, v in d.items():

l.append(k + ':' + v)

print(l)

字典推导式

语法格式:

{key:value for x in (1, 2, 3)}

# 示例一

>>> d = {k:k.upper() for k in ('rose', 'lila', 'tom')} # {'rose': 'ROSE', 'lila': 'LILA', 'tom': 'TOM'}

>>> type(d) # dict

# 示例二

>>>d = {x: x*2 for x in (1, 2, 3)} # {1: 2, 2: 4, 3: 6}

字典推导式要生成的元素有两个,分别是 key 和 value,中间以冒号隔开。

集合推导式

>>> s = {x for x in '123abc' if x not in '123'} # {'a', 'b', 'c'}

总结

推导式可以快速生成一个列表、字典或集合等

常见的推导式有列表、字典、集合推导式

推导式前面为要生成的元素,后面接 for 循环,最后还可以跟 if 判断条件

列表([])、集合、字典({})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值