Python打印“ <内置方法...对象”而不是列表

Cha*_*har 3 python printing

import numpy as np
arr = list(map(float,input().split()))
print(np.array(arr.reverse))
Run Code Online (Sandbox Code Playgroud)

为什么打印此内容而不是列表内容?

# outputs "<built-in method reverse of list object at 0x107eeeec8>"
Run Code Online (Sandbox Code Playgroud)

idj*_*jaw 5

你有两个问题。

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

你有这个: arr.reverse

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

下面的简单示例:

>>> [1,2,3].reverse
<built-in method reverse of list object at 0x100662c68>
Run Code Online (Sandbox Code Playgroud)

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

您遇到的第二个问题是该reverse()方法在原位执行了反向操作,这意味着它对arr(会反转arr)执行反向操作并返回None。因此,当您通过此操作时:

np.array(arr.reverse())
Run Code Online (Sandbox Code Playgroud)

您正在返回返回arr.reverse()到你的np.array电话,这是None

因此,通过调用arr.reverse()on 然后再通过修复这两个项目,arr将为您带来预期的结果:

import numpy as np
arr = list(map(float,input().split()))
arr.reverse()
res = np.array(arr)
print(res)
Run Code Online (Sandbox Code Playgroud)

演示:

1 2 3 4
[ 4.  3.  2.  1.]
Run Code Online (Sandbox Code Playgroud)