for循环之前的条件

时间:2017-06-11 11:29:57

标签: python loops

def uncompress(xs):
  zs = []
  b = True
  for k in xs:
  zs.extend([b for i in range(k)])
  b = not b
  return zs

在任何情况下,只想知道在for循环之前有变量或条件是什么,所以在这种情况下,范围内的'b'是什么呢。

1 个答案:

答案 0 :(得分:0)

b = True以来,zs.extend([b for i in range(k)])实际上是zs.extend([True for i in range(k)])zs.extend([True, True, ..., True (k times)])

更新。我假设预期的(缩进的)代码如下:

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, ...]zsTrue s次,False t次,True {{1} }次,u False次等等。