如何创建循环的动态范围?

2024-04-29 07:48:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是创建一个python循环的动态范围。我知道一旦结束范围被作为参数传递给范围生成器时,它只计算一次。然而,这是一个例子:

i = 1
for i in range(1,i,1):
    print i
    i = i +1

很明显,i=1会跳过循环。但是我想知道这个范围是根据i参数动态变化的。在

这是我想要使用动态范围的情况:

  1. 我计算链路的容量
  2. 我计算那条链路的带宽
  3. 我做了一个循环,发送的流量应该等于容量,我称之为过载值。在
  4. 增加的范围是从1到过载值。在

每次迭代时都会计算此重载值,并更新范围。如果理论上说过载值是20,那么范围一直到20。在

这是我的代码:

^{pr2}$

range_end是范围的动态值。有没有办法让它充满活力?在


Tags: 代码in目标for参数情况动态range
3条回答

如果您想更改for循环中的range_end,那么可以尝试使用while循环。在

使用while循环而不是for循环。 这是一个非常基本的例子:

z = 0
range = 10
while z < range:
    print(z)
    if z == 9:
        range = 20
    z += 1

Rob给出的while循环答案可能是最佳解决方案,因为Python 3中的range()函数返回一个lazy sequence对象,而不是一个列表。在

但是,在Python 2中,当您在for循环中调用range()时,它会创建一个列表。你可以保存这个列表然后修改它。在

像这样:

count = 10
r = range(count)
for i in r:
    newcount = 7
    del r[newcount:]

我不太确定它会如何增加尺寸,但你明白了。在

相关问题 更多 >