我有一个调用for循环如果它的范围正在增加的问题。For循环在一个表中增加范围
我有一个表(列表的列表):
for i in range(0, len(table)):
if len(table[i]) > 10:
new_row = table[i][11:]
table.insert(i+1, [])
for val in new_row:
table[i+1].append(val)
e.g表的长度是50并且有一个数,其中我有超过10个值的行。在创建每个新行(table.insert(i + 1,[])后,表的长度增加,因此,当循环到达列49大于10的行49时,它的实际行号变为大于循环的范围
我怎样才能让循环知道的范围内增加目前,只有行最多的50有,如果条件适用
我试过循环之前增加一个计数变量。?
count = 0
for i in range(0, len(table)+count):
if len(table[i]) > 10:
new_row = table[i][11:]
table.insert(i+1, [])
for val in new_row:
table[i+1].append(val)
count = count + 1
这似乎没有帮助!也许某种递归函数在for循环中不断轮询表的长度?我不太确定。
谢谢
范围调用在循环的开始处进行一次,因此在循环开始后您不能更改此范围。你应该使用'while'循环而不是'for'循环。 – pcarter
参考http://stackoverflow.com/questions/11905606/changing-the-number-of-iterations-in-a-for-loop – JkShaw