Python 检查密钥是否属于字典,避免再次存储,并增加计数器
我正试图从一个数据集中创建一个表,该表应该给出数据集中的单词以及它们重复的次数 例如: 数据集:Python 检查密钥是否属于字典,避免再次存储,并增加计数器,python,dictionary,Python,Dictionary,我正试图从一个数据集中创建一个表,该表应该给出数据集中的单词以及它们重复的次数 例如: 数据集:{moon,moon,moon,sun} 表格(最终结果): 我想使用字典并使用键,因此,如果在迭代过程中找到一个已经是键的单词,不要将其添加到字典(应该表示表),而是增加数值 word_table = {} for word in document.split(): if word in word_table: word_table[word, somevalue] +=
{moon,moon,moon,sun}
表格(最终结果):
我想使用字典并使用键,因此,如果在迭代过程中找到一个已经是键的单词,不要将其添加到字典(应该表示表),而是增加数值
word_table = {}
for word in document.split():
if word in word_table:
word_table[word, somevalue] += 1
else:
word_table[word, somevalue] = 1
somevalue
是我与单词一起存储的辅助键。此值可以是是或否。我之所以提到这一点,是因为我不确定这是否会导致问题(或者更好,我要比较的特定键的选择)
当我打印整本字典时,我会得到一长串单词作为键(程序不会检测到重复),计数器中有所有1个
输出:
('moon', 'yes') ==> 1
('moon', 'yes') ==> 1
('moon', 'yes') ==> 1
.........
对于这种特殊情况,我是否应该使用其他方法或数据结构?或者仅仅是代码?你的字典键可以是一个元组(尽管在你的帖子中不清楚你为什么要给它加上点)。您需要做的就是确保在
if
语句中检查该元组:
word_table = {}
for word in document.split():
if (word,somevalue) in word_table:
word_table[word, somevalue] += 1
else:
word_table[word, somevalue] = 1
我相信您需要的结构是集合包中的结构。您只需将您的单词列表提供给它,就会得到一个充满单词和计数的字典结构。这可能就是您要查找的:
>>> from collections import Counter
>>> Counter("moon,moon,moon,sun".split(","))
Counter({'moon': 3, 'sun': 1})
word,somevalue
的条目不是word
的条目word
的条目。
>>> from collections import Counter
>>> Counter("moon,moon,moon,sun".split(","))
Counter({'moon': 3, 'sun': 1})