无论出于何种原因(我应该使用JS),我都在使用Python创建加密/解密程序。在加密程序中,空格是胡萝卜(^)。在解密程序中,我有:
msg = raw_input("Msg: ")
dmsg = list(msg)
for i in dmsg:
if i == "^":
dmsg[i] = " "
print dmsg
当给定字符串“ ^^^”时,输出为...“ TypeError:列表索引必须为整数,而不是Unicode”。我要寻找的只是一个函数或语句。
最佳答案
您正在遍历list元素,但是稍后您将该元素用作需要整数的索引。
似乎你想要的应该是如下
msg = raw_input("Msg: ")
dmsg = list(msg)
for i in range(len(dmsg)):
if msg[i] == "^":
dmsg[i] = " "
print dmsg
要么
msg = raw_input("Msg: ")
dmsg = list(msg)
for n,i in enumerate(dmsg):
if i == "^":
dmsg[n] = " "
print dmsg
更好的方法可以只使用
str.replace
方法msg = raw_input("Msg: ")
dmsg = msg.replace('^', ' ')
关于python - 如何通过索引替换python上的列表项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40646355/