如何解决在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 举报,一经查实,本站将立刻删除。