Python - 更改列表中特定单词的大小写敏感度

Python - Changing the case sensitivity of specific words in a list

我有以下列表:

mylist = ["FOO", "BAR", "NOTFOO", "NOTBAR"]

mylist2 = ["Foo", "Bar"]

我想替换 mylist2 中存在的 mylist 中的单词,但为大写。 我想要的输出看起来像:

mylist = ["Foo", "Bar", "NOTFOO", "NOTBAR"]

我尝试了以下方法。但是我的列表没有变化。

for word in mylist:
    for word2 in mylist2:
        if word == word2.upper():
            word.replace(word, word2)

在 Python 的 for item in somelist 语法中,item 基本上设置为每次迭代列表中每个元素的 copy ,而不是对列表中元素的引用。

您也不需要内部循环,因为 Python 的 in 条件可用于检查列表成员。

另请注意,您希望替换的项目大写,而不是全部大写。

我认为一个相对 Pythonic 的方法来完成你想要的是:

for i, word in enumerate(mylist):
  if word.capitalize() in mylist2:
    mylist[i] = word.capitalize()

试试这个

for index,word in enumerate(mylist):
    for word2 in mylist2:
        if word == word2.upper():
            mylist[index] = word2

输出 打印(我的列表)

['Foo', 'Bar', 'NOTFOO', 'NOTBAR']

这似乎工作正常:

mylist = ["FOO", "BAR", "NOTFOO", "NOTBAR"]
mylist2 = ["Foo", "Bar"]


for x in range(0, len(mylist)): 

    for word2 in mylist2:
        if mylist[x] == word2.upper():
            mylist[x] = word2

print(str(mylist))