【发布时间】: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>"
【问题讨论】:
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>"
【问题讨论】:
你有两个问题。
第一个问题是您实际上并没有调用数组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.]
【讨论】: