【问题标题】:Why is there a difference in map() between ipython3 and the ipython3 notebook?为什么 ipython3 和 ipython3 笔记本之间的 map() 存在差异?
【发布时间】:2013-01-23 23:56:46
【问题描述】:

这是我在 shell 中运行 ipython3 (Python3.2.3) 时预期的结果:

In [1]: sum(map(int, str(79)))
Out[1]: 16

现在这是 ipython3 笔记本中的相同代码:

In [5]: sum(map(int, str(79)))
Out[5]: <builtins.map at 0x5c26950>

怎么了?

【问题讨论】:

  • repr(map)repr(sum) 在每种情况下是什么?你有 pylab 模式或在这两种环境中设置的任何东西吗?
  • @minrk 几乎可以肯定是正确的——如果您将sum 替换为numpy sum,您会得到这样的结果。 repr(sum) 不会直接显示这个(虽然你不会看到 &lt;built-in function sum&gt;,这本身就是证据),但 sum.__module__ 可能会给出 'numpy.core.fromnumeric'
  • @minrk, @DSM:你是对的!我用ipython3 notebook --pylab inline 启动了笔记本。在那种情况下,sum.__module__ 确实会给出'numpy.core.fromnumeric',它的行为与内置版本不同。我需要做什么才能拥有内联图,但 numpy 不会覆盖内置函数?干杯!

标签: python-3.x ipython ipython-notebook


【解决方案1】:

如果您想使用带有--pylab 选项的 ipython3 笔记本,但仍然拥有所有内置函数,您只需这样做:

    In [1]: from builtins import *

感谢@minrk 和@DSM 让我走上正轨!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多