在python中是否有类似.replace()的方法用于列表?

Pat*_*ran 1 python string methods list

我使用.split()方法从字符串中创建了一个列表.例如:string ="我喜欢鸡"我将使用.split()来创建字符串中的单词列表['I','like','chicken'] 现在,如果我想用其他东西替换'chicken',我可以使用的方法就像.replace( )但是对于一个清单?

Ry-*_*Ry- 6

内置任何东西,但它只是一个就地替换的循环:

for i, word in enumerate(words):
    if word == 'chicken':
        words[i] = 'broccoli'
Run Code Online (Sandbox Code Playgroud)

如果总有一个实例,则选择较短的选项:

words[words.index('chicken')] = 'broccoli'
Run Code Online (Sandbox Code Playgroud)

或列表理解以创建新列表:

new_words = ['broccoli' if word == 'chicken' for word in words]
Run Code Online (Sandbox Code Playgroud)

其中任何一个都可以包含在一个函数中:

def replaced(sequence, old, new):
    return (new if x == old else x for x in sequence)


new_words = list(replaced(words, 'chicken', 'broccoli'))
Run Code Online (Sandbox Code Playgroud)


Sha*_*ger 4

不存在这样的方法,但是列表理解可以轻松地适应该目的,不需要新的方法list

words = 'I like chicken'.split()
replaced = ['turkey' if wd == "chicken" else wd for wd in words]
print(replaced)
Run Code Online (Sandbox Code Playgroud)

哪个输出:['I', 'like', 'turkey']