【问题标题】:How to remove first value of range in each iteration?如何在每次迭代中删除范围的第一个值?
【发布时间】:2019-02-23 22:29:23
【问题描述】:

我想在while循环之前使用for循环并定义一个范围,在每次迭代中,我想删除for循环的第一个值

我希望在第一次迭代后得到的结果是 h 将在范围 (1, 30) 中,下一次迭代 (2,30) 直到结束。 原因是我的 while 循环不使用其他值,只使用第一个值,我想使用所有 30 个数字

【问题讨论】:

  • 所以你的代码有另一个外部循环,这里没有包含?内部while循环有什么意义?
  • “删除 for 循环的第一个值”没有任何意义,因为该循环已经定义。我想我们需要更多关于你想要做什么的信息。 -看到@meowgoesthedog 的问题,我脑子里也有同样的问题。是否有一个外循环,所以你希望这个 for 循环运行的列表每次通过外循环都变小?
  • 这段代码是一个例子,其实我的真实代码,一开始是用while定义的,有一个参数beta是我在算法开始时定义的,我打开while循环并计算具有给定 beta 的数据,但是我想用 for 循环放置不同的 beta 并查看不同的结果,但结果都相同,这意味着 for 循环之后的 while 循环不使用所有值,这就是我想要的原因在每次迭代后删除第一个值以使用不同的 beta
  • @steve,我怎么给你看我的真实代码,这是一个例子,因为我的代码太长了,我昨天放的没有人回应?
  • 我们需要一个“最小、完整和可验证的例子” - stackoverflow.com/help/mcve

标签: python numpy


【解决方案1】:

我只是在猜测您要做什么,因此我不会编写任何代码,但逻辑很简单:将您拥有的代码放入另一个带有变量 i 的 for 循环中 - 从 0 到 30,然后放入您当前的代码中将 0 更改为 i。这样,您的内部循环将从 0 迭代到 30,然后从 1 到 30,从 2 到 30 等等。

【讨论】:

  • 这假设 "np.arange(0, 30)" 产生与 "range(0, 30)" 相同的东西。没有理由假设它确实......或者有吗?我至少不知道“np”是什么。
  • @Steve np 是绝大多数人在导入后命名numpy 的方式。
  • 哦,那我可能误解了这个问题。我不会在 python 中编写代码,但不知何故,我认为这只是基本的 for 循环。
【解决方案2】:

如果你有一个范围或数字列表,你可以简单地在 while 循环之前声明一个变量,例如i = 0,并在 while 循环中将其指向您要处理的列表中数字的索引。在 while 循环结束时,递增 i

你会有这样的东西:

foo = [ 1, 2, 3, 4, 5 ]
i = 0
while i < len(foo) :
    number_to_process = foo[i]
    *operations on number_to_process*
    i += 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2014-10-28
    • 2012-09-25
    • 1970-01-01
    • 2022-01-22
    • 2012-11-09
    相关资源
    最近更新 更多