【问题标题】:Python loops and dynamic stacksPython 循环和动态堆栈
【发布时间】:2023-03-16 04:52:01
【问题描述】:

我想创建一个循环。该循环应该进行迭代。我唯一需要的是它所做的最后一次迭代。我想知道是否可以为此创建一个动态堆栈,这样我就不会事先定义一个使用内存的矩阵。我怎么能这样做?

【问题讨论】:

  • 也许你可以提供一些你尝试过的代码来让这更清楚?
  • 为什么需要堆栈?只需使用一个变量并在每次迭代中覆盖它。最后它将存储上一次迭代的值。
  • 我们需要在这里查看一些代码。也许“反转”函数就是你要找的,但不看任何代码就无法分辨。
  • 啊,是的。你是对的。我的问题可以通过简单地覆盖变量来解决。谢谢。

标签: python loops matrix


【解决方案1】:

我想你想要最后一次迭代的结果?

如果是这样,这应该可以解决问题:

#!/usr/bin/env python3

j=0
for i in range(13):
    # with each iteration j grows by 37
    j+=37

    # note: Accessing values from last iterations like below can be hard to accomplish
    #       and may require more helper variables or finally a list.
    print("step " + str(i) + ": \tj grew from " + str(j-37) + " to " + str(j) + ".")
# At this point j got overwritten 13 times and holds the value of 13*37. 
print("Finally j holds the value " + str(j) + ".")

如果我弄错了,而你真的只想进行最后一次“迭代”,那么你基本上不会迭代。您将删除循环并将 i 设置为旧循环中高度复杂计算之前迭代的最后一个值:

#!/usr/bin/env python3

j=0
i=12  # the last value of range(13)
# the old loop:
j+=37
print("'step' " + str(i) + ": \tj grew from " + str(j-37) + " to " + str(j) + ".")
# end of the old loop
# At this point j got overwritten one time and holds the value of 1*37. 
print("finally j holds the value " + str(j) + ".")

第二部分可能是微不足道的,只是为了完整起见。 我希望这回答了你的问题。 下次您在问答板上提问时,请考虑代码示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2012-12-20
    • 2014-01-17
    • 1970-01-01
    • 2019-05-17
    • 2011-06-11
    • 2019-06-19
    相关资源
    最近更新 更多