Python二进制字典格式

Python二进制字典格式,python,dictionary,Python,Dictionary,为了上学,我必须制作一本字典,其中包含文本文件中连续单词的信息 对于文件中的每个单词,我必须输入单词(键)和匹配值,匹配值由可以跟随键的单词列表组成 例如,以下句子: “我想你认为他会觉得很漂亮” 提供以下输出: {'': ['I'], 'I': ['think'], 'it': ['pretty.'] (...) 'think': ['you', 'he', 'it'], 'he': ['will']} 正如您所看到的,第一个条目“有点奇怪,但它是有意的。我必须在代码中明确输入,值是只包含文

为了上学,我必须制作一本字典,其中包含文本文件中连续单词的信息

对于文件中的每个单词,我必须输入单词(键)和匹配值,匹配值由可以跟随键的单词列表组成

例如,以下句子:

“我想你认为他会觉得很漂亮”

提供以下输出:

{'': ['I'], 'I': ['think'], 'it': ['pretty.'] (...) 'think': ['you', 'he', 'it'], 'he': ['will']}
正如您所看到的,第一个条目
有点奇怪,但它是有意的。我必须在代码中明确输入,值是只包含文本第一个单词的列表。 显然,没有哪个条目的“漂亮”是关键

我不太擅长编程,而且我已经坚持了一天多,这几乎是我的全部:

def fill_up_dict(words):
    style_dict = {}
    prev_word = ''  #empty string
         for word in words
         style_dict[prev_word]
    #at a total loss here
    return style_dict

也许你可以看到,但我正在尝试创建一个包含所有单词的关键字列表,然后将这些值赋给它们之前的单词。但无论我做什么,它都毫无用处。

要修改您的方法:

def fill_up_dict(words):
    style_dict = {}
    prev_word = ''  #empty string
    for word in words
         if prev_word not in style_dict:
             style_dict[prev_word] = []
         style_dict[prev_word].append(word)
         prev_word = word
    return style_dict
请注意,您需要在
style_dict
中创建列表以添加单词,并且需要在每次迭代中更新
prev_单词

但是,处理连续单词的最简单方法是:

请注意,您可以使用以下方法稍微简化:

def fill_up_dict(words):
    style_dict = {"": [words[0]]}
    for word1, word2 in zip(words, words[1:]):
        if word1 not in style_dict:
            style_dict[word1] = []
        style_dict[word1].append(word2)
    return style_dict
from collections import defaultdict

def fill_up_dict(words):
    style_dict = defaultdict(list)
    style_dict[""] = [words[0]]
    for word1, word2 in zip(words, words[1:]):
        style_dict[word1].append(word2)
    return style_dict