Python for循环前的条件
我只是想知道在for循环之前有一个变量或一个条件在任何情况下都会做什么,所以在这种情况下,范围内i的“b”会做什么。因为Python for循环前的条件,python,loops,Python,Loops,我只是想知道在for循环之前有一个变量或一个条件在任何情况下都会做什么,所以在这种情况下,范围内i的“b”会做什么。因为b=True,zs.extend([b代表范围内i(k)]实际上是zs.extend([True代表范围内i(k)])或zs.extend([True,True,…,True(k次)]) 更新。我假设预期的(缩进的)代码如下: def uncompress(xs): zs = [] b = True for k in xs: zs.extend([b for i
b=True
,zs.extend([b代表范围内i(k)]
实际上是zs.extend([True代表范围内i(k)])
或zs.extend([True,True,…,True(k次)])
更新。我假设预期的(缩进的)代码如下:
def uncompress(xs):
zs = []
b = True
for k in xs:
zs.extend([b for i in range(k)])
b = not b
return zs
如果xs
是,比如说,[2,1,3]
,那么:
- 在第一次for循环执行(所谓的“迭代”)之后,
和zs=[]+[True,True]=[True,True]
变为b
False
- 然后
和zs=[True,True]+[False]=[True,True,False]
变为b
True
- 最后
和zs=[True,True,False,True,True,True]
变成b
False
因此,如果
xs==[s,t,u,v,…]
那么zs
就是True
s
次,False
t
次,True
u
次,False
v
次等等。对不起,我对python非常陌生,所以一般来说它会做什么,有这种情况吗?我想我问了一个糟糕的问题,我更关注的是b在一般意义上做什么,而不是线@KirillBulygin@JackJock它只是一个变量,它包含一个值。我认为您需要一个基本的介绍,请参见:(列表理解:)[b代表范围内的I(k)]
不是循环,而是循环。
def uncompress(xs):
zs = []
b = True
for k in xs:
zs.extend([b for i in range(k)])
b = not b
return zs