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))
我有以下列表:
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))