在表中增加范围的 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)

例如,表的长度为 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 循环中的某种递归函数可以不断轮询表长度?我不太确定。

谢谢

这是你要找的吗?

idx = 0
while True:
try:
lst = table[idx]
except IndexError:
break
if len(lst) > 10:
table.insert(idx+1, lst[10:])
# You probably want to cut current lst here as well?
# table[idx] = lst[:10]
idx += 1

您可以使用 while 循环来实现此目的!

count = 0
i=0 #initial value
while table: #your iterating loop until table holds a value!
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
i+=1 #increment by 1

最新更新