【发布时间】:2019-07-19 08:26:26
【问题描述】:
我有一个向量列表。
[
[[1,2,3],[7,8,5]],
[[7,8,9],[2,8,6],[2,6,3]],
[[7,5,1],[1,7,3],[6,1,1],[5,2,7]]
]
对于第一个列表中的每个向量,我想提取每个列表中向量之间的最小距离 (MSE) 路径。
例如,对于第一个列表中的第一个元素,我应该获取这个路径:
[1,2,3] -> [2,6,3] -> [1,7,3]
就索引而言:
[0,2,1]
我应该为第一个列表中的每个元素获取此路径。列表很大,真正的向量大约有 300 个元素。
有一些pythonic方法可以避免使用for循环进行硬迭代吗?
【问题讨论】:
-
所有向量都有固定长度吗?
-
抱歉误读。但是,我认为没有任何可能避免循环 - 循环是 O(n) 并且任何排序都会将其提升到更高。但是(如果您不是在寻找旅行商解决方案),这只是 O(m*n) 应该相当快。
-
您能否发布您的解决方案,其中包含您想要避免的“硬迭代”?
-
@Rock Li 我知道。但也许有一些有用的 one liner 可以在 python 中的图形层之间保持最小的排列。我要求一种pythonic方式来实现这个特定的图形搜索。谢谢!
-
一个衬里并没有避免循环 - 将循环变成理解很容易,但根本不会改进算法 - 这是你想要的吗?