【发布时间】:2017-05-10 13:59:08
【问题描述】:
如果范围增加,我在调用 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)
例如,表的长度是 50,并且有许多行我有超过 10 个值。在创建每个新行后(table.insert(i+1, []),表的长度会增加,所以当循环到达行列表大于 10 的第 49 行时,它的实际行号变为大于循环的范围。
如何让循环知道范围增加了?目前,只有不超过 50 的行具有 if 条件
我尝试在循环之前添加一个计数变量:
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循环。
标签: python python-2.7 ipython