我有视频广告列表的数据,我希望它是不可变的,因此我以元组形式打印。下面是我的代码:
video_ads_list = (
{
"title": "Healthy Living",
"company": "Health Promotion Board",
"views": 65423
},
{
"title": "Get a ride, anytime anywhere",
"company": "GoJek",
"views": 54323
},
{
"title": "Send money to your friends with GrabPay",
"company": "Grab",
"views": 654306
},
{
"title": "GrabEat now delivers nationwide",
"company": "Grab",
"views": 5123
},
{
"title": "Get cabs now with GoJekFlash",
"company": "GoJek",
"views": 62353
}
)
print(video_ads_list)
使用此代码,我可以获取打印的数据,但不能调用某些项目,例如“视图”。我需要观看次数的价值,以便可以进行一些计算,例如视频价格等。 例如,如何获得“健康生活”和Gojek的意见。
答案 0 :(得分:3)
不是您的意思的100%,但是您可以通过使用
获得价值print(video_ads_list[2]["views"])
这将打印项目2的视图:
654306
答案 1 :(得分:2)
您可以制作一个单独的字典,将视频名称映射到观看次数:
video_ads_list = (
{
"title": "Healthy Living",
"company": "Health Promotion Board",
"views": 65423
},
...
)
d = {vid['title']: vid['views'] for vid in video_ads_list}
d
如下所示:
{'Healthy Living': 65423,
'Get a ride, anytime anywhere': 54323,
'Send money to your friends with GrabPay': 654306,
'GrabEat now delivers nationwide': 5123,
'Get cabs now with GoJekFlash': 62353}
因此,要获取'Healthy Living'
的观看次数,请编写d['Healthy Living']
。
您可以像这样建立一家公司dict
:
from collections import defaultdict
companies = defaultdict(int)
for vid in video_ads_list:
companies[vid['company']] += vid['views']
companies
将是:
defaultdict(int, {'Health Promotion Board': 65423, 'GoJek': 116676, 'Grab': 659429})
答案 2 :(得分:1)
您的词典在集合内。例如,为了访问"views": 65423
,您首先必须告诉python他应该从集合中选择哪些字典,在本示例中,它是第一个,然后您可以从字典中按顺序选择想要的键返回其值video_ads_list[0]['views']
。因此,如果我们要选择"company": "GoJek"
,则必须输入video_ads_list[1]['company']
答案 3 :(得分:0)
您可以使用所需的指定键和值创建一个dict
,然后将video_ads_list
的每个元素与其进行比较。
specified_fields = {
'title': "Healthy Living",
'company': 'GoJek'
}
for i in video_ads_list:
if any(i[k] == specified_fields[k] for k in specified_fields):
print(i['title'], i['views'])
输出
Healthy Living 65423
Get a ride, anytime anywhere 54323
Get cabs now with GoJekFlash 62353