在for循环中替换列表元素

问题描述

我一直在尝试替换函数内部for循环中的列表元素。我的目标是:接收一封信件,一封新信件和一条消息...在消息中找到旧信件的位置,在“消息”中创建旧信件位置的新列表(letter1_list),然后转到通过消息并用新字母替换旧列表元素。以下是我认为问题所在的地方,除了列表未保留更改的值之外,一切似乎都可以正常工作

        for i in range(len(letter1_List)):
    s = list(message)
    s[letter1_List[messageloc]] = letter2
    messageloc += 1


print(letter1_List)
print(s)
C:\Users\odnod_000\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/odnod_000/PycharmProjects/pythonProject/main.py
[0,1,2,3,4,5,6]
['a','a','b']

Process finished with exit code 0

如您所见,只有最后一个字母被替换。

完整代码

    def swap(letter1,letter2,message):
messageloc = 0
letter1_List = []
letter2_List = []
for i in range(len(message)):
    if letter1 == message[messageloc]:
        letter1_List.append(messageloc)
    messageloc += 1

messageloc = 0
for i in range(len(message)):
    if letter2 == message[messageloc]:
        letter2_List.append(messageloc)
    messageloc += 1
messageloc = 0

for i in range(len(letter1_List)):
    s = list(message)
    s[letter1_List[messageloc]] = letter2
    messageloc += 1


print(letter1_List)
print(s)

解决方案没有语法错误,但是它不会更改已编辑的“消息”,而是仅更改消息的最后一个字母

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...