python:从一个字典中获取值,并将其作为关键字插入另一个字典



我想打印出来,其中每个键代表公司名称,值代表推出的视频数量,如下例所示:{"Grab":1,"Uber":3}

但我可以得到正确的值。请给我建议。谢谢

video_ads = [
{"title": "Healthy Living", "company": "Uber", "views": 15934, "created_days_ago": 302, "bounce_rate": 0.17},
{"title": "Get a ride, anytime anywhere", "company": "Uber", "views": 923834, "created_days_ago": 289, "bounce_rate": 0.11},
{"title": "Send money to your friends with GrabPay", "company": "Grab", "views": 23466, "created_days_ago": 276, "bounce_rate": 0.08},
{"title": "Ubereats now delivers nationwide", "company": "Uber", "views": 1337, "created_days_ago": 270, "bounce_rate": 0.04}
]

industry_data = {}
videos_count = 0
for key in video_ads:
print(key["company"])
company = key["company"]
if company in industry_data:
videos_count += 1
else:
industry_data[company] = videos_count
videos_count += 1
print(industry_data)

问题在于积累数据的方式。这应该在for循环中完成。你不需要额外的video_count。只需在industry_data中这样总结它们:

industry_data = {}
for key in video_ads:
company = key["company"]
if company in industry_data:
industry_data[company] += 1
else:
industry_data[company] = 1
print(industry_data)
# {'Uber': 3, 'Grab': 1}

使用collections.Counter

from collections import Counter
video_ads = [
{"title": "Healthy Living", "company": "Uber", "views": 15934, "created_days_ago": 302, "bounce_rate": 0.17},
{"title": "Get a ride, anytime anywhere", "company": "Uber", "views": 923834, "created_days_ago": 289, "bounce_rate": 0.11},
{"title": "Send money to your friends with GrabPay", "company": "Grab", "views": 23466, "created_days_ago": 276, "bounce_rate": 0.08},
{"title": "Ubereats now delivers nationwide", "company": "Uber", "views": 1337, "created_days_ago": 270, "bounce_rate": 0.04}
]
c = Counter(x['company'] for x in video_ads)
print(c)
# Counter({'Uber': 3, 'Grab': 1})
result_dict = {}
for k in video_ads:
try:
result_dict[k['company']] += 1
except KeyError:
result_dict[k['company']] = 1
print (result_dict)
#{'Uber': 3, 'Grab': 1}

你几乎答对了。if循环应该在for循环内部,并进行一些小的修改,如下所示:

industry_data = {}
videos_count = 0
for key in video_ads:
print(key["company"])
company = key["company"]
if company not in industry_data:
industry_data[company] = 1
else:
industry_data[company] += 1
print(industry_data)

最新更新