2017-10-28 134 views
0

我想把一個列表放入一個字典中,並計算列表中每個單詞的出現次數。我不明白的唯一問題是當我使用更新函數時,它需要x作爲字典鍵,當我希望x是list_的x值時。我是新來的Python,所以任何意見表示讚賞。如果你想要的項目列表轉換爲包含的list_entry: number_of_occurences映射字典的簡單方式感謝我如何操縱鍵循環更新字典

list_ = ["hello", "there", "friend", "hello"] 
d = {} 
for x in list_: 
    d.update(x = list_.count(x)) 

回答

3

使用Counter對象。

>>> from collections import Counter 
>>> words = ['hello', 'there', 'friend', 'hello'] 
>>> c = Counter(words) 

>>> print(c) 
Counter({'hello': 2, 'there': 1, 'friend': 1}) 

>>> print(dict(c)) 
{'there': 1, 'hello': 2, 'friend': 1} 
+0

哇,不知道你可以做到這一點。謝謝! – user3152311

3

的選項將使用字典解析與list.count()這樣的:

list_ = ["hello", "there", "friend", "hello"] 
d = {item: list_.count(item) for item in list_} 

輸出:

>>> d 
{'hello': 2, 'there': 1, 'friend': 1} 

但是,最好的選擇應該在@ AK47的溶液中使用collections.Counter()

+0

這也工作了,謝謝:) – user3152311