有效地在Python中查找和替换列表中的字符串

Mfr*_*man 1 python

我目前正在从api中删除一个列表,并根据严重性级别更改名称

现在我的代码是这样做的

priname = list((item['fields']['priority']['name']) for item in data['issues'])
priname = [w.replace('Trivial', 'Low')
            .replace('Minor', 'Low')
            .replace('Moderate', 'Medium')
            .replace('Major', 'High')
            .replace('Critical', 'High')
            .replace('Blocker', 'Emergency')for w in priname]
Run Code Online (Sandbox Code Playgroud)

所以我只是将列表中的字符串替换为概括内容的关键字.当我对更大的列表执行此操作时,需要永远返回更改的列表,我意识到这意味着这根本不是一种有效的方法.

任何人都可以指出我可以简化这个发现和替换的方向吗?

编辑:

Priname=[
'Critical',
'Moderate',
'Major',
'Moderate',
'Moderate', 
'Critical', 
'Moderate', 
'Moderate', 
'Moderate', 
'Blocker', 
'Critical', 
'Moderate', 
'Moderate', 
'Major', 
'Moderate', 
'Critical'
]
Run Code Online (Sandbox Code Playgroud)

Dan*_*ejo 6

你可以使用字典:

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)
Run Code Online (Sandbox Code Playgroud)

产量

['High', 'Medium', 'High', 'Medium', 'Medium', 'High', 'Medium', 'Medium', 'Medium', 'Emergency', 'High', 'Medium', 'Medium', 'High', 'Medium', 'High']
Run Code Online (Sandbox Code Playgroud)