我遇到了字典问题(python 3+)。 我在python的两个不同字典中上载了两个不同的txt文件。 因此,现在我想将Dictionary1和Dictionary2的一些参数组合起来,以构建新的字典。
ratings: [ ["142", "196", 5] ]
title: { "196" : "Noisy", "233" : "The Sunshine" }
并且我想创建一个新字典,以用户ID作为键(例如,“ 142”(来自评级))和标题作为值(通过索引到标题,例如title [“ 196”]来检索)。>
我的代码是:
第一个:
try:
ratings = {}
for line in open('u.ratings'):
line = line.split('\t')[0:3]
print(line)
except IOError as ioerr:
print('File error: ' + str(ioerr))
print(ratings)
第二个:
try:
movies = {}
for line in open('u.movies'):
(id, title) = line.split('|')[0:2]
movies[id] = title
except IOError as ioerr:
print('File error: ' + str(ioerr))
print(movies)
答案 0 :(得分:0)
好的,我会做一些假设:
用户ID是给定的,是以某种方式收集的,在这种情况下为user_id = 142
由于已经加载了数据,因此您可以使用第一个字典索引到第二个字典中,而不用创建第三个字典。 (如果您只需要一个数据源,请开始研究Python随附的SQLite
数据库。)
user_id = 142
reviewed_title = title[ratings[user_id]]
答案 1 :(得分:0)
如果我正确理解你的话:
x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
def two_dicts_in_one(x, y):
z = x.copy()
z.update(y)
return z
z = two_dicts_in_one(x, y)
print(z)
输出:
{'a': 1, 'b': 3, 'c': 4}
答案 2 :(得分:0)
我很难理解您要做什么。 如果您想将电影的评级附加到电影词典中,并保留该评级的用户ID,建议您尝试类似的操作
movies= {
"196":{"name":"Noisy","ratings":[]},
"233":{"name":"The Sunshine","ratings":[]}
}
ratings = [
{"userID":"142","movieID":"196","num": 5},
{"userID":"142","movieID":"233","num": 4},
{"userID":"142","movieID":"196","num": 4.3},
]
for rating in ratings:
movies[rating["movieID"]]["ratings"].append(rating)
print(movies)
for循环使用包含所有评分数据的对象为每个电影填充一个评分数组。
希望有帮助。