0
A
回答
2
你可以只喂Counter
生成器表達式:
cnt = Counter(word for sublist in multiple for word in sublist)
cnt
Out[40]: Counter({'apple': 3, 'ball': 2, 'cat': 2})
sum(cnt.values())
Out[41]: 7
名單是巨大的,所以我使用的只是一個虛擬實例
multiple=[['apple','ball','cat']['apple','ball']['apple','cat'].......]
words=['apple','ball','cat','duck'......]
word = 'apple'
cnt = Counter()
total = 0
for i in multiple:
for j in i:
if word in j:
cnt[word] +=1
total += cnt[word]
我想這樣的輸出中的對象列表
我並沒有真正看到您的words
列表。你沒有使用它。
如果您需要過濾掉不在words
的話,讓words
一個set
,不一個list
。
words = {'apple','ball','cat','duck'}
cnt = Counter(word for sublist in multiple for word in sublist if word in words)
否則你會得到O(n ** 2)的行爲應該是O(n)操作。
0
這工作在Python 2.7和Python 3.x的:
from collections import Counter
multiple=[['apple','ball','cat'],['apple','ball'],['apple','cat']]
words=['apple','ball','cat','duck']
cnt = Counter()
total = 0
for i in multiple:
for word in i:
if word in words:
cnt[word] +=1
total += 1
print cnt #: Counter({'apple': 3, 'ball': 2, 'cat': 2})
print dict(cnt) #: {'apple': 3, 'ball': 2, 'cat': 2}
print total #: 7
print sum(cnt.values()) #: 7
在Python 2.x中,你應該使用的.itervalues()
代替.values()
即使兩者的工作。
短一點的解決方案,基於roippi的回答是:
from collections import Counter
multiple=[['apple','ball','cat'],['apple','ball'],['apple','cat']]
cnt = Counter(word for sublist in multiple for word in sublist)
print cnt #: Counter({'apple': 3, 'ball': 2, 'cat': 2})
相關問題
- 1. 總計兩列,對應兩列表中的一個agregate
- 2. 計數和總計列表
- 3. 鏈接列表中的對象計數
- 4. 如何從唯一列表和計數器對象創建計數列表?
- 5. 如何獲取另一個列表中的列表的總和?
- 6. 總計在數據表中的列中
- 7. 計數ListView中的列表項總數
- 8. 列表中值的總和計劃
- 9. 總和對象的屬性列表
- 10. R(dplyr):相對於列表中第一個值的值的總和列表
- 11. 找到一個列表的列表中重複的對象
- 12. 數據綁定到xaml中的對象列表中的對象列表中的對象列表
- 13. 將對象列表複製到另一個對象中另一個對象的另一個列表中
- 14. 循環列表如果一個列表或一個新的列表中有對象,如果一個對象
- 15. C#序列化一個對象與其中的對象列表
- 16. 總和另一個工作表中的列的總和
- 17. MySQL的 - 在一個表中一列的總和與其他表
- 18. 計劃,讓每一個第5和第7的每個對象的唯一列表(列表)從一個數組
- 19. 返回一個列表中的n個整數的總和
- 20. node.js中列表中的總和數字
- 21. java返回數組列表的一個對象的數組列表另一個對象的其餘對象
- 22. 使用列表對象列表和搜索對象列表中的項目(python)
- 23. Python中列表的總和
- 24. 列表中的負整數的總和
- 25. 計算列表中所有對象的總成本字典
- 26. ios Restkit - 用另一個列表中的列表映射對象
- 27. 訪問列表中的第一個對象列表
- 28. 轉換列表的STR對象到一個列表對象
- 29. 列表中的每個數據幀的列總和,給出一個唯一的數據框與總和
- 30. 總和/ Python中對象列表的一個屬性的平均值
,做你會得到什麼輸出? –
我無法獲得所有計數器對象的正確總數。它給出了不同的總數 – user3470490