python - 使用相同键列表映射字典以获取值
问题描述
我有一个形式的字典 id_names:
1: 'Nightwatch (1997)',
2: 'Nobody Loves Me (Keiner liebt mich) (1994)',
3: 'Wife, The
.
.
.
100: 'Lamerica (1994)'
它们的键代表电影 ID,值是电影名称。
我正在遍历一个列表高:
# Finding 5 highest values
high = k.most_common(5)
for i in high:
print(i[0]," :",i[1]," ")
带输出:
3 : 5.5
16 : 4.4
7 : 3.7
42 : 3.6
83 : 3.3
此列表的键与字典 id_movies 的键相同。我想要的是以某种方式映射两者,以便我可以获得电影的名称和分数。
我正在尝试这样的事情:
for i in high:
print(i[0]," :",i[1]," ")
for name, age in id_names.iteritems():
print(movie_titles1[i[0]])
但我知道这不是 python 字典应该如何工作的......
解决方案
如果值i[0]
是您的字典键:您可以使用此键从电影字典中获取相应的名称:
for i in high:
print(i[0], ":", i[1], movies.get(i[0]))
如果您想将电影的标题和发布日期作为单独的值存储在您的字典中,您可以从集合中导入 defaultdict() 并使用列表作为具有单独条目的日期和标题的值。
from collections import defaultdict
movies = defaultdict(list)
movies['1'] = ['Nightwatch', '1997']
movies['2'] = ['Nobody Loves Me (Keiner liebt mich)', '1994']
movies['3'] = ['Wife, The', None]
high = [['3',5.5],['2',4.2],['1',3.7]]
for i in high:
print(i[0], ":", i[1], "; Title: ", movies.get(i[0])[0],';', "release date: ", movies.get(i[0])[1])
输出:
3 : 5.5 ; Title: Wife, The ; release date: None
2 : 4.2 ; Title: Nobody Loves Me (Keiner liebt mich) ; release date: 1994
1 : 3.7 ; Title: Nightwatch ; release date: 1997
推荐阅读
- c++ - FANN:使用从多个文件读取的数据训练 ANN 时的内存泄漏
- logic - 转换为 RA:双向暗示/等价
- python - Django将POST删除请求路由到viewProduct?
- python - 让 Python 乌龟朝向正在绘制的线的方向
- batch-file - 如何通过分隔符“ - ”拆分文件名并在前后回显部分?
- html - 使用机械化提交表单以解码/编码重音字符问题结束
- ios - 在 iTunes iOS 备份中查找应用程序图标
- python - 将具有空白列表(值)的字典转换为 df
- python - 检查列是否有字符串对象然后转换为数字
- python - 删除Python列表中每个元组的第一项