无论出于何种原因(我应该使用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/

10-12 19:10