我正在分析一些用户数据,我得到了一个(预处理为小写)用户名列表,如下所示:
name_list = ['joebob', 'sallycat', 'bigbenny', 'davethepirate', 'nightninja', ...(many more)]
还有一本比较词典,我想对这些名字进行比较,看看某些单词与其他单词相比出现的频率。例如
comparisons = {"Pirates vs Ninjas": ["pirate", "ninja"],
"Cats vs Dogs": ["cat", "dog"]}
我试图得到一个循环/理解,其输出如下
{"Pirates vs Ninjas": {"pirate": 224, "ninja": 342},
"Cats vs Dogs": {"cat": 430, "dog": 391}}
(上面的数字只是最终结果字数的示例)
我知道使它工作所需的所有单个组件(字典理解和dict.get
)。什么是正确的方式来把这一切放在一起
编辑澄清:我想看看有多少用户名包含单词“cat”,并将其记录在包含单词“dog”的数字旁边。结果将以“猫对狗”键记录在dict中。接下来,我会继续做下一个比较,“海盗与忍者”
首先在列表上运行
Counter
以获得用户名->;计数映射,然后使用dict&;通过comparisons
列出理解。如果entry
不存在,计数器将给出0例如:
category == "Pirates vs Ninjas"
entry == "pirate"
entries == ["pirate", "ninja"]
样本数据:
然后
如果希望允许不区分大小写和部分匹配,我们将不使用
Counter
,而是使用sum
:在这里,我们首先在搜索之前将
entries
映射到小写,我们不仅计算精确匹配,而且通过in
运算符和sum
计算“包含”类型匹配相关问题 更多 >
编程相关推荐