各位IT高手
小弟我想問,我想取出在X List中的出現次數多的前幾名元素,但寫到這邊就有錯誤訊息
希望能請高手幫忙解答,要如何修改?
謝謝高手
X = [1,5,6,7,8,49],[8,9,12,34,55,30],[6,7,8,9,3,2],[1,8,9,30,55]
from collections import Counter
o = x[:20]
for i in o :
for j in i :
n = Counter(j)
TypeError: unhashable type: 'list'
Counter本身是dict的subclass,使用上必須給一個可以hash的迭代物件。
from collections import Counter
X = [1,5,6,7,8,49],[8,9,12,34,55,30],[6,7,8,9,3,2],[1,8,9,30,55]
element = [j for i in X for j in i]
count_element = Counter(element)
print(count_element.most_common())
print(count_element.most_common(3))
謝謝高手,跑出來後會出現下方List,想問我如果只想要左邊的元素,右邊的統計資料不要
[(34, 6), (25, 5), (29, 5), (22, 5), (17, 5), (6, 4), (12, 4), (13, 4), (43, 4), (32, 4)
希望變成
[34,25,29,22,17,6,12,13,43,32]
且希望將一開始題目中,左邊跟右邊的List連續出現2次以上的移出,不要在清單內,該如何寫呢?
result = [i[0] for i in count_element.most_common() if i[1]<2]
print(result)
這樣才對
X = [[1,5,6,7,8,49],[8,9,12,34,55,30],[6,7,8,9,3,2],[1,8,9,30,55]]