当前位置: 首页 > 面试题库 >

Swift 4-如何从数组中返回重复值的计数?

袁宜
2023-03-14
问题内容

我有一个具有多个值(双精度)的数组,其中许多是重复的。我想返回或打印所有唯一值的列表,以及给定值在数组中出现多少次的计数。我对Swift来说还很陌生,我尝试了几种不同的方法,但是我不确定实现此目的的最佳方法。

像这样的内容:[65.0、65.0、65.0、55.5、55.5、30.25、30.25、27.5]

将打印(例如):“ 3 at 65.0、2 at 55.5、2 at 30.25、1 at 27.5”。

我不太关心输出,而不是实现此目的的方法。

谢谢!


问题答案:

您可以枚举数组,并将值添加到字典中。

var array: [CGFloat] =  [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
var dictionary = [CGFloat: Int]()

for item in array {
   dictionary[item] = dictionary[item] ?? 0 + 1
}

print(dictionary)

或者你可以在数组上做foreach:

array.forEach { (item) in
  dictionary[item] = dictionary[item] ?? 0 + 1
}

print(dictionary)

或如@rmaddy所说:

var set: NSCountedSet =  [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
var dictionary = [Float: Int]()
set.forEach { (item) in
  dictionary[item as! Float] = set.count(for: item)
}

print(dictionary)


 类似资料:
  • 如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?

  • #1处的console.log生成正确的数据。console.log#2始终生成“a”; 如有任何指示,将不胜感激。

  • 问题内容: 目前,我得到了这样的数组: 经过几步,我的数组如下所示: 我如何计算数组中有多少个a,b,c?我想要一个类似的结果: 等等 问题答案: function count() {

  • 考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?

  • 如果条件匹配,我想从多数组中获取变量的特定值。 打印阵列时: 给出如下数组: 如果ID与21匹配,我正在尝试获取客户号码

  • 问题内容: 这个问题已经在这里有了答案 : java“ void”和“ non void”构造函数 (4个答案) 10个月前关闭。 问题答案: 您定义的实际上不是构造函数,而是称为的方法。如果您将代码更改为如下所示,则可以正常运行: 如果未明确定义任何特定的构造函数,则编译器会自动创建一个无参数的构造函数。