【问题标题】:Re-use result of last line Jupyter最后一行 Jupyter 的重用结果
【发布时间】:2017-06-20 08:57:14
【问题描述】:

在 Jupyter 笔记本中,有没有办法在单元格内重复使用上面的输出行?

来自 Mathematica,我经常发现使用 % 编写对最后一行的输出起作用的命令很有用,这是一个愚蠢的例子:

Integrate[f[x],x]
Limit[%,x->1] - Limit[%,x->0] 

一般可以写%%% 用于倒数第三个输出等https://reference.wolfram.com/language/ref/Out.html

@nostradamus 提醒我下划线 _ 是最后一个单元格的输出,至少在 Python 中是这样。 (Get last answer 。)我最初并没有问这个问题,但特别希望能够在一个单元格内执行此操作,以便能够通过一个 shift-enter 执行多个步骤。

我还想知道是否有办法在 Julia 中而不是 Python 中执行这些操作。

【问题讨论】:

  • 我发现不太有用的东西:* 如何打印所有输出:stackoverflow.com/a/36835741/8187364 * 支持 Out(n) 的包:github.com/jlapeyre/Symata.jl
  • 请查看this。可能重复。
  • 谢谢,我不知道。我认为_ 总是使用单元格输出,而不是单元格内的行输出是否正确?如果可以的话,我会稍微更新一下我的问题......
  • 我认为您是正确的,尽管我不明白您所说的“不是单元格内的行输出”是什么意思。而_ 将使用之前的输出,您可以使用_xOut[x] 的缩写)引用任何输出单元格。此外,___ 也可以正常工作(就像 Mathematica 中的 %%%)。参见例如here“输入输出历史”。

标签: python ipython wolfram-mathematica julia jupyter-notebook


【解决方案1】:

在 julia 中,ans 存储评估最后一条语句的结果。

4*2
ans/2

您可能也有兴趣查看管道语法

4*2 |>
sqrt

【讨论】:

【解决方案2】:

可以使用“_”,一般在python环境下工作。

【讨论】:

    【解决方案3】:

    万一其他人在 google 上发现了这个,我刚刚在 Julia 中发现了一个大致符合我要求的包:ChainRecursive.jl 使用 it 作为魔术词,如下所示:

    julia> using ChainRecursive
    
    julia> @chain for k=1:4
               k^2 + k^3
               print(" $k -> $it ")
           end
    
     1 -> 2  2 -> 12  3 -> 36  4 -> 80
    

    使用它似乎没有性能损失,因为它在编译之前是未包装的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2019-02-06
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多