我需要将电影评论的分数与评论专线的每个单词配对。例如,如果评论行为"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}
。其他值被覆盖。
答案 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]所以你可以计算有多少评论喜欢那样