gpt4 book ai didi

Swift编程——字典迭代

转载 作者:行者123 更新时间:2023-11-28 13:16:30 25 4
gpt4 key购买 nike

我目前正在阅读苹果提供的swift书,想知道如何找出以下代码中最大的数字......我已经找到了现在我需要的最大数字是什么“添加另一个变量以跟踪哪种类型的数字最大,以及最大的数字是什么。”

 let interestingNumbers = [
"Prime": [2,3,5,7,11,13],
"Fibonacci": [1,1,2,3,5,8],
"Square": [1,4,9,16,25]
]
var largest = 0
for (kinds, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
largest

最佳答案

如果你想要一个功能性的实现,它可能看起来像:

let interestingNumbers = [
"Prime": [2,3,5,7,11,13],
"Fibonacci": [1,1,2,3,5,8],
"Square": [1,4,9,16,25]
]

let result = map(interestingNumbers) { ($0, maxElement($1)) }
.sorted { $0.1 < $1.1 }.last
  • map 获取由序列名称和该序列中的最大元素组成的元组数组;

  • sorted 显然根据元组中的第二个元素对这些结果进行排序;和

  • last 抓取最后一个,即具有最大最大数的序列。

或者,您可以使用 reduce 找到具有最大值的元组作为其第二项:

let maxElements = map(interestingNumbers) { ($0, maxElement($1)) }
let result = maxElements.reduce(maxElements.first!) { $0.1 > $1.1 ? $0 : $1 }

关于Swift编程——字典迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804162/

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