繁体   English   中英

根据Python列表的长度更改for循环的范围

[英]Changing the range of a for loop based on the length of a list for Python

如果我有清单:

list = [1, 2, 3, 4, 5]

和for循环:

for i in range(len(list)):
   if list[i] > 3:
      list.clear()
      list.append(1)
print(list)

现在,这些只是显示我所遇到问题的示例,也就是说,我想根据列表的长度来遍历列表。 如果满足特定条件,则要修改列表。 但是,然后我希望for循环根据新列表的长度运行。 这样做的主要原因以及我包括list.clear()的主要原因是,如果列表与定义的列表完全不同,则我要检查的条件也将适用于列表中从list [开始的每个元素] 0]。

所以基本上,我希望for循环根据给定List的长度运行,然后我希望它根据新List的长度再次运行,同时检查第一个列表和第二个列表的每次迭代以此类推,直到我希望它打破为止。

希望我对我的问题很清楚。 由于我是初学者,因此欢迎提出任何相当简单的建议。 如果我在做任何可怕的事情,也请指出。

谢谢。

你为什么不这样写:

i = 0
while True:
    if i < len(list):
       if list[i] > 3:
          list.clear()
          list.append(1)
          i += 1
    else:
       break

print(list)

希望我能很好地理解你。

建议您在迭代列表时不建议对其进行修改。

您需要一种从头开始for循环的方法,可以通过将其包装在while循环中来实现:

flag = True
while flag:
    for i in range(len(items)):
        if items[i] > 3:
            items.clear()
            items.append(1)
            # break out of the for loop and start over, because flag is still True
            break
        else if final_condition:
            # set flag to false and break out of for loop
            flag = False
            break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM