Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有效地从dict中的键中选择最佳字符串_Python - Fatal编程技术网

Python 有效地从dict中的键中选择最佳字符串

Python 有效地从dict中的键中选择最佳字符串,python,Python,我试图从文件中读取EXIF数据,特别是图像的标题。有时需要检查多个字段以查看是否设置了标题。现在,我用一堆if语句来做这件事,一次尝试一个,直到结果不是none,如果是,则应用默认标题 #Set the title m.title = exif.get('Xmp.dc.subject') if m.title is None: m.title = exif.get('Xmp.dc.title') if m.title is None: m.title = origin

我试图从文件中读取EXIF数据,特别是图像的标题。有时需要检查多个字段以查看是否设置了标题。现在,我用一堆if语句来做这件事,一次尝试一个,直到结果不是none,如果是,则应用默认标题

#Set the title
  m.title = exif.get('Xmp.dc.subject')
  if m.title is None:
    m.title = exif.get('Xmp.dc.title')
  if m.title is None:
    m.title = original_filename_noextension
我的问题是,有没有更简单的方法?如果需要检查很多密钥,搜索可能会很长

m.title = exif.get('Xmp.dc.subject') or exif.get('Xmp.dc.title') or original_filename_noextension
应该有用。请注意,这将“合并”任何虚假值,而不仅仅是
None

或者,您可以非常轻松地编写函数:

def coalesce(*args):
   for a in args:
      if a is not None:
          return a
用法:

m.title = coalesce(exif.get('Xmp.dc.subject'), exif.get('Xmp.dc.title'), original_filename_noextension)