以新名称改变旧名字的pythonic方式

hik*_*ker 0 python

我必须将oldnames替换为程序中的newnames,如下所示:

oldnames = ['apple','banana','sheep']

for oldname in oldnames:
    if oldname == 'apple':
        newname = 'monkey'

    if oldname == 'banana':
        newname = 'monkey'

    if oldname == 'sheep':
        newname = 'lion'
Run Code Online (Sandbox Code Playgroud)

我的程序运行良好,但想知道最好的pythonic方式是什么?

Cor*_*mer 6

例如,您可以使用字典来处理替换

>>> replacements = {'apple':'monkey',
                    'banana':'monkey',
                    'sheep':'lion'}
>>> s = "The apple and the banana saw a sheep"
>>> ' '.join(replacements.get(word,word) for word in s.split())
'The monkey and the monkey saw a lion'
Run Code Online (Sandbox Code Playgroud)