0 python dictionary for-loop list python-2.7
我在将循环答案插入列表时遇到问题:
for i in word_list:
if i in word_dict:
word_dict[i] +=1
else:
word_dict[i] = 1
print word_dict
Run Code Online (Sandbox Code Playgroud)
有了这个我得到字数的字典像
{'red':4,'blue':3}
{'yellow':2,'white':1}
Run Code Online (Sandbox Code Playgroud)
有可能以某种方式将这些答案添加到列表中
[{'red':4,'blue':3},{'yellow':2,'white':1}]
Run Code Online (Sandbox Code Playgroud)
基本上我从for循环中得到5个字典,是否可以将所有这些字典放入一个列表中,而无需更改每个字典.每当我尝试将它们放入一个列表时,它只会给我一些类似的东西:
[{{'red':4,'blue':3}]
[{'yellow':2,'white':1}]
[{etc.}]
Run Code Online (Sandbox Code Playgroud)
这是我的程序的副本,没有我用来编码的文本文件,基本上books.txt只包含来自5位作者的5个不同的txt文件,而且我在单独的词典中我所有的单词计数我想添加到一个列表,如:
[{'red':4,'blue':3},{'yellow':2,'white':1}]
Run Code Online (Sandbox Code Playgroud)
word_dict_list = []
for word_list in word_lists:
word_dict = {}
for i in word_list:
if i in word_dict:
word_dict[i] +=1
else:
word_dict[i] = 1
word_dict_list.append(word_dict)
Run Code Online (Sandbox Code Playgroud)
或者干脆:
from collections import Counter
word_dict_list = [ dict(Counter(word_list)) for word_list in word_lists]
Run Code Online (Sandbox Code Playgroud)
例:
from collections import Counter
word_lists = [['red', 'red', 'blue'], ['yellow', 'yellow', 'white']]
word_dict_list = [ dict(Counter(word_list)) for word_list in word_lists]
# word_dict_list == [{'blue': 1, 'red': 2}, {'white': 1, 'yellow': 2}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |