擅长:python、mysql、java
<p>如果这对其他人有帮助的话,这是IPython的一个线魔术,作为对答案的回应。它让它稍微不那么痛苦:</p>
<p><code>%ins <var></code>将使用<code>itertools.tee</code>创建{<cd2>}的两个副本。一个将被重新分配给<code><var></code>(这样您就可以在它的原始状态下重用它),另一个将被传递给print(list()),以便它输出到终端。在</p>
<p><code>%ins <expr></code>将把表达式传递给print(list())</p>
<p>若要安装,请将其另存为<code>ins.py</code>在<code>~/.ipython/profile_default/startup</code>中</p>
<pre><code>from IPython.core.magic import register_line_magic
import itertools
@register_line_magic
def ins(line):
if globals().get(line, None):
gen1, gen2 = eval("itertools.tee({})".format(line))
globals()[line] = gen2
print(list(gen1))
else:
print(list(eval(line)))
# You need to delete this item from the namespace
del ins
</code></pre>