gpt4 book ai didi

arrays - Swift:配对数组元素的最佳方法是什么

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:12 25 4
gpt4 key购买 nike

我遇到了一个需要成对迭代数组的问题。最好的方法是什么?或者,作为替代方案,将数组转换为对数组(然后可以正常迭代)的最佳方法是什么?

这是我得到的最好的。它要求 output 是一个 var,这不是很漂亮。有没有更好的办法?

let input = [1, 2, 3, 4, 5, 6]

var output = [(Int, Int)]()

for i in stride(from: 0, to: input.count - 1, by: 2) {
output.append((input[i], input[i+1]))
}


print(output) // [(1, 2), (3, 4), (5, 6)]

// let desiredOutput = [(1, 2), (3, 4), (5, 6)]
// print(desiredOutput)

最佳答案

您可以映射步幅而不是迭代它,即允许将结果作为一个常量:

let input = [1, 2, 3, 4, 5, 6]

let output = stride(from: 0, to: input.count - 1, by: 2).map {
(input[$0], input[$0+1])
}

print(output) // [(1, 2), (3, 4), (5, 6)]

如果你只需要遍历对并且给定的数组很大那么避免创建中间体可能是有利的具有惰性映射的数组:

for (left, right) in stride(from: 0, to: input.count - 1, by: 2)
.lazy
.map( { (input[$0], input[$0+1]) } ) {

print(left, right)

}

关于arrays - Swift:配对数组元素的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com