Deque旋转返回None类型
我想把一个numpy数组向右或向左旋转一定的距离。我现在的做法是这样的:
- 我把它转换成deque对象
- 使用deque对象的旋转方法。
- 再把类型转换回numpy数组。
比如,我把一个叫myarray的数组向右旋转2个元素。
deque(myarray)
myarray = myarray.rotate(2)
print myarray
但是我得到的结果不是数组,而是None。有人能帮我解决这个问题吗?
2 个回答
1
把这看作是对stardust的回答的一个补充说明/澄清/总结(因为声望原因不能评论),并附上完整的代码示例:
将stardust的回答和njzk2的评论(rotate函数不返回任何东西可以打印)结合起来,你就能看到整个情况。
>>> from collections import deque
>>> myarray = [1,2,3,4]
>>> myarray = deque(myarray)
>>> print myarray
deque([1,2,3,4])
>>> myarray.rotate(1)
>>> print myarray
deque([4,1,2,3])
2
正如roippi所指出的,rotate
是直接在原地旋转这个双端队列(deque)。代码应该是这样的:
deque(myarray)
myarray.rotate(1)
或者像Bi Rico建议的那样旋转数组。
roll(myarray, 1)
其实还有很多其他方法可以完成这个任务,比如切片。