0

Python 2.7.5 (私を判断しないでください)

私が持っているもの(例):

numbers = [1,3,5,1,3,5,7,0,2,2,9,1]

frequencies = [0,0,0,0,0,0,0,0,0,0]

数値の要素を調べ、それに応じてインデックスを作成して頻度を変更することでカウントするfor ループが必要です。周波数は次のようになります。

[1,3,2,2,0,2,0,1,0,1]

len() 関数を使用してみました...何らかの理由で...カウントを適切に組み込む方法が見つかりませんでした。

4

3 に答える 3

6
for n in numbers:
    frequencies[n] += 1
于 2013-10-19T05:02:25.680 に答える
0

カウンターはこれに最適です。

from collections import Counter

numbers = [1,3,5,1,3,5,7,0,2,2,9,1]
freq = Counter(numbers)
# Counter({1: 3, 2: 2, 3: 2, 5: 2, 0: 1, 7: 1, 9: 1})

# dictionary
d = dict(freq)
#{0: 1, 1: 3, 2: 2, 3: 2, 5: 2, 7: 1, 9: 1}

# tuples
t = freq.items()
# [(0, 1), (1, 3), (2, 2), (3, 2), (5, 2), (7, 1), (9, 1)]

# list
L = [freq[n] for n in xrange(max(freq.keys()) + 1)]
# [1, 3, 2, 2, 0, 2, 0, 1, 0, 1]

# add more
freq.update(numbers)
# Counter({1: 6, 2: 4, 3: 4, 5: 4, 0: 2, 7: 2, 9: 2})  

コレクション.カウンター

于 2013-10-19T06:36:13.820 に答える