gpt4 book ai didi

swift - Swift有没有类似numpy.diff的函数计算数组相邻元素的差值

转载 作者:可可西里 更新时间:2023-10-31 23:56:42 26 4
gpt4 key购买 nike

我正在尝试将一些 Python 代码转换为 Swift,并想知道是否存在一个现有函数来计算 Swift 数组中连续元素之间的差异。例如:

diff([1,3,5,6,10]) would return [2,2,1,4]

最佳答案

不,但它可以很容易地实现:

let a = [1, 3, 5, 6, 10]
zip(a.dropFirst(), a).map(-) // => [2, 2, 1, 4]

它很简单,可能不值得包装成一个函数,但如果你坚持:

extension Collection where Element: Numeric {
func diff() -> [Element] {
return zip(self.dropFirst(), self).map(-)
}
}

[1, 3, 5, 6, 10].diff() // => [2, 2, 1, 4]

如果您需要延迟评估结果,您可以这样做:

extension Collection where Element: Numeric {
func diff() -> AnyCollection<Element> {
return AnyCollection(zip(self.dropFirst(), self).lazy.map(-))
}
}

关于swift - Swift有没有类似numpy.diff的函数计算数组相邻元素的差值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50689535/

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