所以我有一个具有这种结构的基本目录。
movies = {
'Mary': {
'Big':
{
'Watched': 1,
'Rating': 'G'
}
},
'Frank': {
'Cinderella':
{
'Watched': 1,
'Rating': 'G'
}
}
}
我想迭代所有用户名的电影。以及在我需要时添加更多。那就是我会说'玛丽'。如何为每部电影列出所有带有评级并在该电影下观看的电影? 我该如何添加新电影?
我在python中对此有点新见并搜索了之前的问题,但这些字典比这个更复杂,这就是我要问的原因。
编辑:
def displaymembers():
for key in movies:
print("%s" % key)
到目前为止,这是我如何展示人,但不知道如何访问密钥中的所有电影?
答案 0 :(得分:0)
您可以嵌套for循环以继续遍历内部dicts。您可以使用dict.items
来获取密钥及其值。
for name, movie_dict in movies.items():
print(name)
for movie_name, movie_stats in movie_dict.items():
print("{:<5}{}".format('', movie_name))
for key, value in movie_stats.items():
print("{:<10}{}, {}".format('', key, value))
否则你可以这样做只用键并链接它以获得每个键的值。 dict[key1][key2][keyn]
for name in movies:
print(name)
for movie_name in movies[name]:
print("{:<5}{}".format('', movie_name))
for key in movies[name][movie_name]:
print("{:<10}{}, {}".format('', key, movies[name][movie_name][key]))
# Output
Mary
Big
Watched, 1
Rating, G
Frank
Cinderella
Watched, 1
Rating, G
这种方法的问题在于,在movies
dict中必须具有相同的结构,如果某些键可能没有字典值,例如Mary
有一个列表或某些东西而不是字典作为值,那么你将需要处理这种情况。如果你的词典总是遵循你所展示的结构,那么你就不应该担心它。