我有此词典列表:
-p
我必须为其中的每只猫创建分钟的观看报告。如果已完全监视,则添加所有分钟;如果部分监视,则仅添加一半的分钟;如果未监视,则不添加分钟。
因此,示例输出报告为:
mysqldump [options] -p'' --databases database_name
我快到了,至少我是这么认为的。这是我的输出:
import os
from mlflow import log_metric, log_param, log_artifact
if __name__ == "__main__":
# Log a parameter (key-value pair)
log_param("param1", 5)
# Log a metric; metrics can be updated throughout the run
log_metric("foo", 1)
log_metric("foo", 2)
log_metric("foo", 3)
# Log an artifact (output file)
with open("output.txt", "w") as f:
f.write("Hello world!")
log_artifact("output.txt")
似乎只在“部分”中添加了“浪漫”,并且总数未更新。
任何在正确方向上的帮助都是很好的。
这是我的代码:
[{Title: title1, Minutes: 657, Cat: Romance, Watched: Fully},
{Title: title2, Minutes: 128, Cat: Philosophy, Watched: Fully},
{Title: title3, Minutes: 76, Cat: Romance, Watched: Partially}]
编辑:经过进一步的审查,我认为正在发生的事情是我正在重写总数。
在这一行:Romance: 695
Philosophy: 128
,我认为有些问题。也许只是遍历所有键而没有得到我想要的键。
答案 0 :(得分:2)
一个可能的版本,使用dict.setdefault()
(doc):
data = [{'Title': 'title1', 'Minutes': 657, 'Cat': 'Romance', 'Watched': 'Fully'},
{'Title': 'title2', 'Minutes': 128, 'Cat': 'Philosophy', 'Watched': 'Fully'},
{'Title': 'title3', 'Minutes': 76, 'Cat': 'Romance', 'Watched': 'Partially'}]
out = {}
for item in data:
out.setdefault(item['Cat'], 0)
out[item['Cat']] += item['Minutes'] if item['Watched'] == 'Fully' else item['Minutes'] // 2
print(out)
打印:
{'Romance': 695, 'Philosophy': 128}
答案 1 :(得分:1)
尝试一下!
def get_count(self, movie_list):
final = {}
for movie in self.movie_list:
cat = movie['Cat']
final.setdefault(cat, 0)
minutes = int(movie['Minutes'])
if movie['Watched'] == 'Fully':
final[cat] += minutes
elif movie['Watched'] == 'Partially':
final[cat] += minutes / 2
print(final)