我有
形式的字典dictM
dictM={movieID:[rating1,rating2,rating3,rating4]}
Key是一个movieID,rating1,rating2,rating3,rating4是它的值。有几个有评级的movieID。如果movieID具有一定数量的评级,我想将某些movieID与评级一起移动到新的dicitonary。
我正在做的是:
for movie in dictM.keys():
if len(dictM[movie])>=5:
dF[movie]=d[movie]
但我没有得到理想的结果。有人知道解决方案吗?
答案 0 :(得分:1)
您可以使用dictionary comprehension,如下所示:
>>> dictM = {1: [1, 2, 3, 4], 2: [1, 2, 3]}
>>> {k: v for (k, v) in dictM.items() if len(v) ==4}
{1: [1, 2, 3, 4]}
答案 1 :(得分:1)
您可以使用简单的字典comprhension尝试此操作:
dictM={3:[4, 3, 2, 5, 1]}
new_dict = {a:b for a, b in dictM.items() if len(b) >= 5}
上面的代码可能没有产生任何结果的一个原因是,首先,你没有定义dF,dictM中唯一值的长度等于4,但你想要5或更高,如if所示代码中的陈述。
答案 2 :(得分:0)
您不会删除条目,您可以这样做:
dictM = {1: [1, 2, 3],
2: [1, 2, 3, 4, 5],
3: [1, 2, 3, 4, 5, 6, 7],
4: [1]}
dF = {}
for movieID in list(dictM):
if len(dictM[movieID]) >= 5:
dF[movieID] = dictM[movieID] # put the movie + rating in the new dict
del dictM[movieID] # remove the movie from the old dict
结果如下:
>>> dictM
{1: [1, 2, 3], 4: [1]}
>>> dF
{2: [1, 2, 3, 4, 5], 3: [1, 2, 3, 4, 5, 6, 7]}