2016-07-12 2 views
0

は私は要素の出現数を検索する可変配列を有するが、例えば、百分率として表さ:3,2:3,3:0これは出現[1を与えるSwift:配列内の要素の出現回数をパーセンテージで表しますか?

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 
    } 

、4:1,5:3] [1:0.3,2:0.3,3:0,4:0.1,5:0.3]

私は/.countを使用して見ることができますループ内の各値のどこかにあるが、それを把握することはできない。

答えて

4

多分このようなものでしょうか?

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] 
+0

これは簡単ではありません......テストがあります。 – SashaZ

+1

なぜそれができないのですか?瞬間に問題を見たとき、これは私が思っていたこととほぼ同じです。 'count'要素があるので、' 1/count'の貢献度があります。それらを合計して辞書に入れれば完了です! 'counts [item] =(counts [item] ?? 0)'は、まだ値がない場合はkey:valueのペアを初期化します。 – ColGraff

+0

私は二重として働くように値を変更しました。ありがとうございました。 – SashaZ

関連する問題