【问题标题】:Python printing "<built-in method ... object" instead of listPython打印“<内置方法...对象”而不是列表
【发布时间】:2016-10-12 00:51:36
【问题描述】:
import numpy as np
arr = list(map(float,input().split()))
print(np.array(arr.reverse))

为什么要打印这个而不是列表的内容?

# outputs "<built-in method reverse of list object at 0x107eeeec8>"

【问题讨论】:

    标签: python printing


    【解决方案1】:

    你有两个问题。

    第一个问题是您实际上并没有调用数组arr 上的reverse 方法。

    你有这个:arr.reverse

    你必须实际调用它 -> arr.reverse()

    下面的简单例子:

    >>> [1,2,3].reverse
    <built-in method reverse of list object at 0x100662c68>
    

    不调用reverse,得到的输出是list对象的未调用reverse方法。这与您得到的输出非常相似。

    您遇到的第二个问题是 reverse() 方法在原地执行反向操作,这意味着它在 arr 上执行反向操作(您的 arr 将被反向)并返回 None。所以,当你通过这个时:

    np.array(arr.reverse())
    

    您正在将arr.reverse() 的返回返回到您的np.array 调用,即None

    因此,修复这两个项目,通过调用arr.reverse()然后传递arr,将为您提供您期望的结果:

    import numpy as np
    arr = list(map(float,input().split()))
    arr.reverse()
    res = np.array(arr)
    print(res)
    

    演示:

    1 2 3 4
    [ 4.  3.  2.  1.]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多