我有这样一个列表:[['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和如何处理数据结构,但我正在努力 算法。我应该有多少个循环是什么意思?在
只考虑一个列表:
['Hello', 'Hi']
。这将在输出(Hi -> Hello)
和(Hello -> Hi)
中生成两个“对”。要处理其中一个列表,我们需要查看以下内容:(可以使用
itertools.combinations
或itertools.permutations
(取决于偏好)将其转换为一个循环。)那么我们应该如何存储计数呢?{6}的值基本上是不存在的,因为这是字典的默认值。如果您的外部字典可以是默认为空计数器的字典,这将非常方便,您可以使用
defaultdict
来完成。在我将让您编写代码来更新计数并处理所有列表,但希望这足以让您走上正确的道路。(}都在
defaultdict
和{collections
中。我最初发现defaultdict
文档与使用counts = defaultdict(Counter)
创建文档类似相关问题 更多 >
编程相关推荐