微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在for循环中替换列表元素

如何解决在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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?