替换列表列表中的字符串python

2024-09-29 23:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含三个独立列表的列表:

James =     ['Alvin Kamara','Alex Collins','Michael Thomas',
          'Adam Thielen','Evan Engram','Lamar Miller']

Ben =   ['Todd Gurley II','Royce Freeman','Larry Fitzgerald',
        'Cooper Kupp','Benjamin Watson','Robby Anderson']

Chris =     ['Dion Lewis','Rex Burkhead','Julio Jones',
          'Keenan Allen','Zach Ertz','Demaryius Thomas']

我想删除文本'II',如果你在“Ben”列表中查找,它会将'Toddy Gurley II'更改为'Todd Gurley'。我目前的尝试是:

^{pr2}$

但我得到的结果是:

['Todd Gurley II', 'Royce Freeman', 'Larry Fitzgerald', 'Cooper Kupp', 'Benjamin Watson', 'Robby Anderson']

Tags: 列表thomaswatsoniibenlarrytoddcooper
3条回答

在外部for循环中,更新owner变量的副本,但不要在列表中替换它。您可以将更新的owner变量添加到新列表中:

new_list = []
for owner in master_list:
    owner = [word.replace(' II','') for word in owner]
    new_list.append(owner)

print(new_list[1])

['Todd Gurley', 'Royce Freeman', 'Larry Fitzgerald', 'Cooper Kupp', 'Benjamin Watson', 'Robby Anderson']

或者,您可以在所有者列表上使用enumerate(),以便更新原始的master_list

^{pr2}$

当您调用owner = [word.replace(' II','') for word in owner]时,您不是在更新master_list;而是在修改其中一个元素的副本。在

您可以通过以下方式调用并更新master_list

master_list[1] = [word.replace(' II','') for word in owner]

或者可以引用新数组:

^{pr2}$

您可以使用re

import re
print([re.sub('\sII$', '', i) for i in master_list[1]])

输出:

^{pr2}$

相关问题 更多 >

    热门问题