python set dict不存在,如何处理?

2024-09-29 17:16:55 发布

您现在位置:Python中文网/ 问答频道 /正文

import SimpleITK as sitk

reader = sitk.ImageFileReader()
reader.SetFileName(filePath)
reader.ReadImageInformation()
img = reader.Execute()

meta = {
    "a": reader.GetMetaData('0'), <- if not exist return 'undeinfed'
    "b": reader.GetMetaData('1'),
    "c": reader.GetMetaData('2'),
}

我是javascript开发人员。 我想设置meta dict,它显示错误,即“键“0”不存在”

它不可能存在在这种情况下我如何设置元


Tags: importimgexecuteifasnotmetareader
2条回答

您可以使用默认dict

from collections import defaultdict
d = defaultdict(lambda : 'xx') #<- Whatever value you want
d[10] #no value passed value automatically assinged to xx
d[11]=12 #value 12 assinged
#to get value you can use d.get(key)
print(d[10]) #prints 'xx'
print(d)

输出

defaultdict(<function <lambda> at 0x000001557B4B03A8>, {10: 'xx', 11: 12})

您可以根据需要进行修改

docs类中,ImageFileReader类有一个^{}布尔函数。因此,您应该能够这样做:

meta = {
    "a": reader.GetMetaData('0') if reader.HasMetaDataKey('0') else 'undefined',
    "b": reader.GetMetaData('1') if reader.HasMetaDataKey('1') else 'undefined',
    "c": reader.GetMetaData('2') if reader.HasMetaDataKey('2') else 'undefined',
}

您可以在一(长)行中完成:

meta = {m: reader.GetMetaData(k) if reader.HasMetaDataKey(k) else 'undefined'
        for m, k in zip(['a', 'b', 'c'], ['0', '1', '2'])}

相关问题 更多 >

    热门问题