python之列表推导式:c for b in a的代码形式理解

直接上代码可能更直观点:

y= [x*x for x in range(10)]
print(y)

输出的是一个列表:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

这段代码类似的就是:

for x in range(10):
    print(x*x)

 

列表推导公式:c for b in a : 

首先for b in a 很好理解:我们从a里面取出每一个迭代对象b。

然后我们对这个b进行c操作,并且以c操作后的形式输出一个列表。

所以上例实现的就是输出一个从0~99的平方数的列表。

 

按照这个理解,我们同样也可以遍历生成一个2D坐标数。

t=  [(x,y) for x in range(2) for y in range(3)]
print(t)

输出的就是:

[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

和上述一致,这段代码类似的就是

t=[]
for x in range(2):
    for y in range(3):
        t.append((x,y))
print(t)

 

从右往左看,首先y取0值,往左边走,x此时取值为0,在往左边走,就直接输出(x,y)也就是(0,0)了

 

第二次,y取值为1,x此时不变(等y变完才会改变)....以此类推

这类写法都是为了代码更简洁的,想要代码更好看一点最好试着这么写啦~

  • 18
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值