问题描述
我一直在尝试替换函数内部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 (将#修改为@)