如何计算数组中一组数字的频率?

时间:2019-07-16 21:56:04

标签: arrays swift

我想要最简单的方法来为我的tableview打印出数组中每组数字的出现。

我找到了类似的答案,但它们的帮助还不够。

我的代码是这样设置的,因为我为每个集合换了一行,并在每个数组元素中的每个数字之间使用逗号分隔。

var numbers = [

 """1, 2, 3, 4""",
 """5, 6, 7, 8""", 
 """3, 4, 5, 6""",
 """1, 2, 7, 8""", 
 """1, 2, 3, 4""", 
 """3, 4, 5, 6""", 
 """1, 2, 3, 4"""

] 

如何打印出每种组合出现的频率?

1 个答案:

答案 0 :(得分:1)

您可以使用字典分组初始化程序并映射其值计数:

let setFrequency = Dictionary(grouping: numbers) { $0 }
    .mapValues{ $0.count }

let setFrequency = numbers.reduce(into: [:]) { $0[$1, default: 0] += 1 }

print(setFrequency)  // ["3, 4, 5, 6": 2, "1, 2, 7, 8": 1, "5, 6, 7, 8": 1, "1, 2, 3, 4": 3]

或使用reduce(into:)

(cola-colb) <= 1000