迭代范围(0,len(temp), - 1)不起作用

时间:2016-05-13 13:57:35

标签: python if-statement

我有以下代码没有进入循环,我无法理解原因。

python file.py 1111100000000

代码:

import argparse

p = argparse.ArgumentParser()
p.add_argument("bits", help = "array_of_bits")
args = p.parse_args()
bits = args.bits

temp = []

for i in bits:
    temp.append([int(i)])

print (temp)

fin = []
j = 0

for i in range(0,len(temp),(-1)):
    if ( (temp[i] == 0) ):
        fin.extend(temp[j].append(temp[i]))
    if ( len(temp[i]) != 1 ):
        fin.extend(temp[j].append(temp[i]))

j = j + 1

print (fin)

我想得到的是:

[[1], [1], [1], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0]]
[[10010], [10010], [100]

但我得到了这个:

[[1], [1], [1], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0]]
[[]]

1 个答案:

答案 0 :(得分:4)

问题在于您range循环中的for重复:

for i in range(0,len(temp),(-1)):

range(0,len(temp),(-1))是一个空范围,因此循环永远不会被执行。

您的范围将从0开始并生成小于len(temp)的项目,但步长为-1,即从0向下计数。这样,​​它永远无法达到其目标值,因为{{1总是积极的。