【问题标题】:Replace element of a list in python在python中替换列表的元素
【发布时间】:2018-01-11 04:15:40
【问题描述】:

我有列表,我想用另一个元素替换列表中的所有元素。
代码:

list1 = ['1','1','3','4','5','2','3','4']                                           
dict1 = {'dict1' : ['1','2','3','4','5'] ,'name':['su5','pra4','sa3','ma2','sri1']}            
for x in range(len(dict1['dict1'])):    
      list1 = [word.replace(dict1['dict1'][x],dict1['name'][x]) for word in list1]   
print(list1)

实际输出:

['susri1', 'susri1', 'sa3', 'ma2', 'sri1', 'prama2', 'sa3', 'ma2']  

预期输出:

['su5','su5','sa3','ma2','sri1','pra4','sa3','ma2']

【问题讨论】:

  • 如果一个元素是'12'怎么办?是否要将其重命名为 su5pra4
  • 不,我不想重命名为 su5pra4。

标签: python-3.x list replace


【解决方案1】:

这是一个非常奇怪的字典,如果您转换字典以便可以将其用作直接映射,那么这是一件相对容易的事情,例如:

>>> dict2 = dict(zip(dict1['dict1'], dict1['name']))
>>> [dict2[i] for i in list1]
['su5', 'su5', 'sa3', 'ma2', 'sri1', 'pra4', 'sa3', 'ma2']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2022-01-11
    • 2018-08-16
    • 2015-12-29
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多