将列表添加到词典

时间:2017-12-22 20:34:26

标签: python python-3.x dictionary

我需要将电影评论的分数与评论专线的每个单词配对。例如,如果评论行为"3 I love this movie"。然后字典应该有:

dict = {3:I, 3:love, 3:this, 3:movie}

这是我的代码:

#function to pair every single word with the score attributed to the review.

def pair_word_with_score(user_input):
    #create a dictionary
    pair_dict = {}
    words = user_input.split()
    for word in words:
        pair_dict[words[0]] = word
    return pair_dict



def main():
    user_input = input("Please enter a review \n")
#call the pairing function
    print(pair_word_with_score(user_input))
if __name__ == "__main__":
    main()

当我调用该函数时,它只打印{3:movie}。其他值被覆盖。

2 个答案:

答案 0 :(得分:1)

字典只能有唯一的密钥,这意味着您无法创建:

3 : 'I'
3 : 'love'
...

在这种情况下, 3 是关键,' I' 是一个值。

我想你想要有关系:

number -> list_of_words

以下是如何使用以下句子创建字典:3是键,单词是值:

>>> text = "3 I love this movie"
>>> my_dict = dict(zip([int(text[0])], [text[1:].split()]))
>>> my_dict
{3: ['I', 'love', 'this', 'movie']}

dict 代表字典的构造函数,在这种情况下,它将元组转换为键值对。

zip 将两个可迭代对象(在本例中为列表)组合成元组。

如果您想将密钥作为数字,则需要将第一个字符强制转换为类型 int()

[1:] 表示我正在阅读除第一个字符以外的所有字符 - 它会返回不带索引0项目的列表

split()函数用分隔符分隔字符串中的单词(在本例中为空格,即默认分隔符)。它返回单词列表。

现在你可以致电:

>>> my_dict[3]

你得到了

['I', 'love', 'this', 'movie']

你可以这样做(更具可读性):

>>> my_dict = {}
>>> my_dict[int(text[0])] = text[1:].split()
>>> my_dict
{3: ['I', 'love', 'this', 'movie']}

请勿使用" dict" 作为变量名称导致影子名称" dict()" 代表字典构造函数。

答案 1 :(得分:0)

def pair_word_with_score(user_input):
    #create a dictionary
    pair_dict = {}
    words = user_input.split()
    for word in words:
        pair_dict[word] = words[0]
    return pair_dict



def main():
    user_input = input("Please enter a review \n")
#call the pairing function
    print(pair_word_with_score(user_input))
if __name__ == "__main__":
    main()

现在你可以得到我:3爱情:3和其他如果你有同样的话,比如“我喜欢它”,你会尝试编写代码,如添加到3并创建列表[3 ,4]所以你可以计算有多少评论喜欢那样