Skip to main content
 首页 » 编程设计

python之使用默认值从字典列表中提取项目

2025年05月04日15三少

我想在下面的列表中使用列表理解;

movie_dicts = [ 
{'title':'A Boy and His Dog', 'year':1975, 'rating':6.6}, 
{'title':'Ran', 'year':1985, 'rating': 8.3}, 
{'year':2010, 'rating':8.0}, 
{'title':'Scanners', 'year':1981, 'rating': 6.7} 
] 

利用我对列表理解和字典的了解,我知道

title_year = [i['title'] for i in movie_dicts] 
print title_year 

将打印包含电影标题的列表。但是,由于缺少其中一部电影的片名,我收到以下错误

Traceback (most recent call last): 
  File "./loadjson.py", line 30, in <module> 
    title_year = [i['title'] for i in movie_dicts] 
KeyError: 'title' 

有没有办法检查电影标题是否存在,如果不存在,则在其位置放置一个默认值?

请您参考如下方法:

使用 dict.get() method返回丢失键的默认值:

title_year = [i.get('title', '<untitled>') for i in movie_dicts] 

这将替换字符串 '<untitled>'缺少标题。或者,过滤掉没有 key 的条目(生成更短的列表):

title_year = [i['title'] for i in movie_dicts if 'title' in i]