3 回答
TA贡献1853条经验 获得超18个赞
你可以使用字典:
priname = [
'Critical',
'Moderate',
'Major',
'Moderate',
'Moderate',
'Critical',
'Moderate',
'Moderate',
'Moderate',
'Blocker',
'Critical',
'Moderate',
'Moderate',
'Major',
'Moderate',
'Critical'
]
table = {'Trivial': 'Low',
'Minor': 'Low',
'Moderate': 'Medium',
'Major': 'High',
'Critical': 'High',
'Blocker': 'Emergency'}
result = [table[e] for e in priname]
print(result)
输出
['High', 'Medium', 'High', 'Medium', 'Medium', 'High', 'Medium', 'Medium', 'Medium', 'Emergency', 'High', 'Medium', 'Medium', 'High', 'Medium', 'High']
TA贡献1860条经验 获得超9个赞
您可以使用字典并为每个键分配多个值:
replacements = {'Low': ['Trivial','Minor'], 'Medium': ['Moderate'], 'High': ['Major','Critical'], 'Emergency': ['Blocker']}
Priname=['Critical','Moderate','Major','Moderate','Moderate', 'Critical', 'Moderate', 'Moderate',
'Moderate', 'Blocker', 'Critical', 'Moderate', 'Moderate', 'Major', 'Moderate', 'Critical']
Priname = [k for i in Priname for k, v in replacements.items() if i in v]
返回:
['High', 'Medium', 'High', 'Medium', 'Medium', 'High', 'Medium', 'Medium', 'Medium', 'Emergency', 'High', 'Medium', 'Medium', 'High', 'Medium', 'High']
TA贡献1982条经验 获得超2个赞
想到的一个想法是,而不是使用 for 循环,将列表转换为 numpy 数组并使用 numpy.where 函数:
w = numpy.array(w)
ind = numpy.where(w==list_elements_you_are_looking_for)
w[ind] = new_value
添加回答
举报