我需要根据键的值将Dictionray写入文件。意思是,如果我有电影的典范字典(=键),以及放映该电影的演员,那么我需要将一个演员写到文件中,然后写出他所播放的所有电影。
键是电影,值是演员集。
我努力写电影和价值观,但正如我所解释的那样,这不是我想要的。
文件应类似于: 演员姓名,电影1,电影2等...
答案 0 :(得分:2)
最直接的方法是反转字典。
actor2movies = {}
for movie, actors in movie2actors.items():
for actor in actors:
if actor not in actor2movies:
actor2movies[actor] = []
actor2movies[actor].append(movie)
(如果您将actor2movies
初始化为collections.defaultdict(list)
,则可以省略if
语句。)
然后一次写出结果字典,一个键及其值。
with open("foo.txt", "w") as f:
for actor, movies in actor2movies.items():
print("{},{}".format(actor, ",".join(movies))
答案 1 :(得分:-1)
将键设置为演员。您可以创建另一个字典,该字典将当前字典的值用作键,并将键作为值。