Skip to main content
 首页 » 编程设计

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

2025年05月04日21kerrycode

我目前正在从 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] 

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

任何人都可以指出我可以简化此查找和替换的方向吗?

编辑:

Priname=[ 
'Critical', 
'Moderate', 
'Major', 
'Moderate', 
'Moderate',  
'Critical',  
'Moderate',  
'Moderate',  
'Moderate',  
'Blocker',  
'Critical',  
'Moderate',  
'Moderate',  
'Major',  
'Moderate',  
'Critical' 
] 

请您参考如下方法:

你可以使用 dictionary :

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']