首页 > 解决方案 > 替换列表中的项目

问题描述

我正在尝试根据子字符串匹配替换列表中的项目

我有以下清单

x = ['D-cat', 'cat', 'C-Rabbit', 'Rabbit', 'R-rat', 'S-rat', 'L-cat']

如果有两个项目,例如 D-cat 和 cat,我想用不带前缀的项目替换带前缀的项目。即 D-cat 必须替换为 cat。同样,我想用 xxx 替换所有前缀 xxx。

我厌倦了以下使用replace.

x = [animal.replace('D-cat','cat') for animal in x] 

预期结果:

x = ['cat', 'cat', 'Rabbit', 'Rabbit', 'R-rat', 'S-rat', 'cat']

我不确定如何对所有项目实施这一点。

我想请教一些建议。

编辑:测试用例

x =['C-Rab 6-bit', 'Rab 6-bit']

预期输出:

x=['Rab 6-bit', 'Rab 6-bit']

标签: pythonlistreplace

解决方案


你可以用基本的for循环来做到这一点:

mylist = ['D-cat', 'cat', 'C-Rabbit', 'Rabbit', 'R-rat', 'S-rat', 'L-cat']

for i in range(len(mylist)):
    for j in range(len(mylist)):
        if mylist[j] in mylist[i]:
            mylist[i] = mylist[j]

print (mylist)

输出:

['cat', 'cat', 'Rabbit', 'Rabbit', 'R-rat', 'S-rat', 'cat']

编辑:测试用例

mylist = ['C-Rab 6-bit', 'Rab 6-bit']
ouput >> ['Rab 6-bit', 'Rab 6-bit']

推荐阅读