Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python for循环前的条件_Python_Loops - Fatal编程技术网

Python for循环前的条件

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

我只是想知道在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 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