我创建了一个字典,其中存储的信息如下:
dict = {'model_v001': 'In Progress',
'model_v002': 'In Use',
'model_v003': 'In Progress',
'model_v004': 'In Progress',
'model_v005': 'Approved',
'model_v006': 'Pending'}
我试着从字典里的内容中达到以下条件:
使用上面的例子,我应该抓取model_v005
,因为它是最新批准的。
因此,如果model_v004
和model_v005
状态被反转,那么model_v004
将被抓取
keys = dict.keys()
valid_status = ['Element Approved', 'Element in Pipe']
if dict[keys[0]] in valid_status:
#Use this version
print 'Using this version'
else:
#iterate and check the 'previous' version?
最好的办法是什么
正如我在评论中提到的,您需要将所谓的
dict
变量(我强烈建议您避免在内置名之后命名变量)重构为有序的一种方法是将数据重构成
list
个tuple
对象为了更容易理解,我使用了类型注释,这显然不是必须的
return_model
所做的是创建dict
,每个状态都有最新的元素(key是status,value是model\u name),然后根据您的规则选择所需的元素。如果不满足任何条件,则返回None
不带类型批注
假设“最新”是指最高版本号,则可以执行以下操作:
它不是最有效的,但是它创建了一个具有“批准”状态的所有模型的列表。如果为空,它将创建一个状态为“进行中”的模型列表。如果为空,它将创建一个具有“挂起”状态的模型列表。如果为空,它将创建一个只有“None”的列表。然后从最后创建的列表中获取
max
模型相关问题 更多 >
编程相关推荐