如何计算一个列表中的所有单词?

2024-06-26 01:56:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个列表:[['Hello', 'Hi'], ["Hola", "Hi", "Ciao"], ["Ciao", "Hi"]]。 我要做的是创建一个字典,其中的键是列表列表中的每个单词,值是只出现在我的键出现的小列表中的单词数。在

期望输出:

dict = {'Hello': {'Hi':1}, 'Hi': {'Hello':1, 'Hola':1, 'Ciao':2},
        'Hola':{'Hi':1, 'Ciao':1}, 'Ciao':{'Hola':1, 'Hi':2}}

注意:我知道如何使用Python和如何处理数据结构,但我正在努力 算法。我应该有多少个循环是什么意思?在


Tags: 算法数据结构hello列表字典hi单词dict
1条回答
网友
1楼 · 发布于 2024-06-26 01:56:06

只考虑一个列表:['Hello', 'Hi']。这将在输出(Hi -> Hello)(Hello -> Hi)中生成两个“对”。要处理其中一个列表,我们需要查看以下内容:

for x in l:
    for y in l:
        if x != y:
           [update the count of x -> y]

(可以使用itertools.combinationsitertools.permutations(取决于偏好)将其转换为一个循环。)

那么我们应该如何存储计数呢?{6}的值基本上是不存在的,因为这是字典的默认值。如果您的外部字典可以是默认为空计数器的字典,这将非常方便,您可以使用defaultdict来完成。在

我将让您编写代码来更新计数并处理所有列表,但希望这足以让您走上正确的道路。(defaultdict和{}都在collections中。我最初发现defaultdict文档与使用counts = defaultdict(Counter)创建文档类似

相关问题 更多 >