Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Swift:数组中元素的出现次数(以百分比表示)?_Arrays_Swift_Dictionary - Fatal编程技术网

Arrays Swift:数组中元素的出现次数(以百分比表示)?

Arrays Swift:数组中元素的出现次数(以百分比表示)?,arrays,swift,dictionary,Arrays,Swift,Dictionary,我有一个不同的数组,我想找到元素的出现次数,但表示为百分比,例如: var filteredArray = [1,2,4,5,2,1,2,1,5,5] var counts:[Int: Int] = [:] for item in zeroRemovedArray2 { counts[item] = (counts[item] ?? 0) + 1 } 这给出了事件发生率[1:3,2:3,3:0,4:1,5:3] 但是我想要一本[1:0.3,2:0.3,3:0,4:0.1

我有一个不同的数组,我想找到元素的出现次数,但表示为百分比,例如:

var filteredArray = [1,2,4,5,2,1,2,1,5,5]

  var counts:[Int: Int] = [:]

  for item in zeroRemovedArray2 {
    counts[item] = (counts[item] ?? 0) + 1
  }
这给出了事件发生率[1:3,2:3,3:0,4:1,5:3] 但是我想要一本[1:0.3,2:0.3,3:0,4:0.1,5:0.3]的字典


我可以在某个地方看到在循环中使用每个值的/.count,但无法计算出来。

可能是这样的

var filteredArray = [1,2,4,5,2,1,2,1,5,5]

var counts:[Int: Double] = [:]

for item in filteredArray {
  counts[item] = (counts[item] ?? 0) + (1.0/Double(filteredArray.count))
}

print(counts)

// Output:
// [5: 0.30000000000000004, 2: 0.30000000000000004, 4: 0.10000000000000001, 1: 0.30000000000000004]

也许是这样的

var filteredArray = [1,2,4,5,2,1,2,1,5,5]

var counts:[Int: Double] = [:]

for item in filteredArray {
  counts[item] = (counts[item] ?? 0) + (1.0/Double(filteredArray.count))
}

print(counts)

// Output:
// [5: 0.30000000000000004, 2: 0.30000000000000004, 4: 0.10000000000000001, 1: 0.30000000000000004]

为什么不能呢?当我刚才看到这个问题时,这正是我想做的。由于有
count
元素,每个元素都有
1/count
的贡献,在字典中对它们进行汇总,就完成了!
counts[item]=(counts[item]??0)
初始化key:value对(如果它还没有值)。我还将值更改为双倍。谢谢,为什么不能呢?当我刚才看到这个问题时,这正是我想做的。由于有
count
元素,每个元素都有
1/count
的贡献,在字典中对它们进行汇总,就完成了!
counts[item]=(counts[item]??0)
初始化key:value对(如果它还没有值)。我还将值更改为双倍。非常感谢。