如何获得给定索引的排列?
我有一个对象列表:
array = [object0,object1,object2,object3,object4]
并且我想更改给定排列的项目的顺序:
permutation = [ 2 , 4 , 0 , 1 , 3 ]
python 中是否有一个命令可以执行以下操作:
result = Permute(array,permutation)
result = [object2,object4,object0,object1,object3]
我知道我可以用一个简单的 for循环....
I've got a list of objects:
array = [object0,object1,object2,object3,object4]
and i want to change the order of the items given a permutation:
permutation = [ 2 , 4 , 0 , 1 , 3 ]
Is there a command in python that will do something like:
result = Permute(array,permutation)
result = [object2,object4,object0,object1,object3]
I know i can do it with a simple for
loop....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果我们假设
permutation
是0-n
的正确排列(每个排列只出现一次),那么以下代码应该有效:If we are assuming that
permutation
is a proper permutation of0-n
(each appears exactly once), then the following code should work:在 Python 中,这可以通过列表理解轻松完成:
In Python, this is easy to do with a list comprehension:
只是为了完整起见,根本没有 for 的版本:
不过,我宁愿坚持使用列表理解。 ;)
Just for the sake of completeness a version with no for at all:
I'd rather stick with the list comprehension guys, though. ;)
中的 shuffle 方法
使用 numpy [1 7 5 2 9 4 3 6 0 8]
参考:
https://docs.scipy。 org/doc/numpy-1.15.0/reference/ generated/numpy.random.shuffle.html
Use shuffle method from numpy
[1 7 5 2 9 4 3 6 0 8]
Reference:
https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.shuffle.html
您可以使用索引交换。
你有两个数组 a 和 b
所以,做测试
You can use index swapping.
You a have two array a and b
So, do the test