所以我这样写了一个for循环:
for i in range(size):
if(.....)
....
i-=1
else:
....
如果索引位于if
语句中,我会尝试将其减少1 ,但是显然我不能这样做。还有其他方法可以减少i
for循环吗?
我想通过这里提供的文档再次遍历range()函数:Python 3.4.1 range(start,stop
[,step])的文档
如上面的文档所示,您可以为范围函数“ start”,“ stop”和“ step”输入三个参数,最后它会为您提供 不可变的序列 。
“开始”参数定义案例“ i”的计数器变量应何时开始。在本质上,’end’参数就是size参数的作用。至于您想要什么,因为您希望每个循环将变量“
i”减少1,则可以将参数“ step”设为-1,这表示在for循环的每次迭代中,变量“ i”将下降1。
您也可以将“ step”设置为-2或-4,这将使for循环在每递增2向下或4向下时分别计数“ i”。
例:
for x in range(9, 3, -3):
print(x)
打印出:9、6。它从9开始,在3处结束,然后递减计数器3。到3时,它将停止,因此为什么不打印“ 3”本身。
编辑: 刚注意到,事实似乎是您可能想减少for循环中的“
i”值…?那么我要做的就是简单地使用一个while循环,而不是在其中暴露一个可以随意修改的变量。
test = 0
size = 50
while (test < size)
test += 1
if (some condition):
test -= 1
问题内容: 在以下语法不再有效的Swift 3.0中,您将如何表达递减索引循环? 问题答案: 这是一种更简单(更快速)的方法。
问题内容: 我正在经历 递增/递减运算符 ,并且 遇到了这样的情况:如果在这种情况下以递减形式运行循环,则其运行速度将比相同的以递增形式运行的循环快。 我期望两者将花费相同的时间,因为将遵循相同数量的步骤。我在网上搜索,但找不到令人信服的答案。是因为与增量运算符相比,减数运算符花费的时间更少吗? 问题答案: 这是因为在字节码中,与0比较与与非零数字比较是不同的操作。实际需要先将数字加载到堆栈上,然
这里是一个以圆圈为单位的交叉网格,当前为5x5。我试图得到一行5,下面是一行4,然后是3,然后是2等等。我试着改变for循环和值,但什么都不起作用。我需要使用行和列吗? 谢谢!
问题内容: 因此,我正在研究UVA问题,并且我有4个嵌套循环来遍历多边形列表(每个多边形都包含一个点列表,其中每个点都包含一个整数x和y来表示其坐标,即,polygon [0]是一个点,其坐标为面[0] .x和面[0] .y)。 我试图减少程序中for循环的数量,以使其更高效并降低运行时间。我的代码如下: 我尝试通过使用itertools.product使其变得更加高效,如下所示: 无论如何,我的
我正在实现两相矩阵乘法。下面是第一阶段的减速器。键是左文件的行索引和右文件的列索引。我希望映射和减速器的输出计数相同。但是看起来内环递增的迭代器与外环的迭代器相同,因此减速器输出的数量等于键的数量。 代码片: 但是当我有如下简单的java应用程序时: 这里的输出数是4。如果内环的工作原理与减速机相同,则输出计数应为1,即(10-15)。 有人能解释这种行为吗。 维沙尔
我有一个严格按递减顺序排序的数组和一个元素;我想找到数组中最大元素的索引,该元素小于val(如果val已经存在,则为相等),并且我想在时间内完成此操作。和执行upper_bound()不是一个选项。 例如,如果数组为{10,5,3,1}而val为6,则函数应返回1。 我对迭代器是个新手,尝试过在upper_bound()中添加比较函数来使其工作,但失败了。我该怎么处理这件事。 注意:我检查了类似的
问题内容: 我有一个包含ajax调用的for循环,并且我正在尝试确定将索引从for循环传递给回调函数的最佳方法。这是我的代码: 当前,由于异步ajax调用,仅传递了arr数组的最后一个值。除了同步运行ajax调用之外,如何将arr数组的每次迭代传递给回调函数? 问题答案: 您可以使用javascript闭包: 或者您可以使用:
问题内容: 我可以在Java的for循环中更改索引吗?例如: 尽管它在for循环中执行j ++,但在for循环中,我也在执行j = j +3。对我来说有可能实现这一点吗? 问题答案: 是的,您可以在for循环内更改索引,但是这太令人困惑了。在这种情况下,最好使用while循环。