在 Scala 中向后迭代两个列表(不同长度)的最有效方法是什么。
所以对于两个列表
List(a,b,c) and List(1,2)
这对会是
(c,2) and (b,1)
注意:我不想对每个列表进行反向操作。
最佳答案
一个简单的方法是:
List('a','b','c').reverse zip List(1,2).reverse
然而,如果您担心效率,则反转列表是 O(n)
。
根据列表
的scaladoc , 使用 reverseIterator
可能 效率更高。这样您就不会像使用 reverse
那样创建新列表,而是在不断迭代时遍历它。那会是:
val it = list1.reverseIterator zip list2.reverseIterator //returns an Iterator you can force
it.toList // List((c,2), (b,1))
关于list - 在 Scala 中向后迭代两个列表(不同长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465844/