字符串替换在for循环中不起作用,但在IPython控制台中起作用

字符串替换在for循环中不起作用,但在IPython控制台中起作用,python,string,Python,String,我有一个非常长的一维数组列表,包含数千个字符串。有了这些字符,我想将以下字符“()abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”)替换为None,我为此编写了以下代码: array[i][-22:-1].translate(None, "()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") 当我在IPython控制台上单独运行它时,这一行可以工作,但是,当

我有一个非常长的一维数组列表,包含数千个字符串。有了这些字符,我想将以下字符“()abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”)替换为None,我为此编写了以下代码:

            array[i][-22:-1].translate(None, "()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
当我在IPython控制台上单独运行它时,这一行可以工作,但是,当我运行脚本时,它不工作。脚本运行结果只吐出字符串,没有任何修改,我打算删除的字符仍然保留

下面是一个脚本,该行取自该脚本,但未作为代码使用:

    for i in range(0, len(array)):
        if len(array[i]) > 20:
            array[i][-22:-1].translate(None, "()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
            gps_crude.append(array[i][-22:-1])
        else:
            pass
    print gps_crude

怎么了??谢谢

字符串是不可变的。“独立”工作的那一行可能会显示结果输出,但除非重新分配,否则数组[i]将保持不变

import string
array[i] = array[i][-22:-1].translate(None, '()'+string.letters)
我想替换以下字符

我认为在那里用正则表达式会更好

import re
array[i] = re.sub(r'[a-z]|[A-Z]|[()]', '', array[i][-22:-1])

当我在代码中重新分配它时,它表示字符串没有重新分配属性。以下是我重新分配后收到的结果:TypeError:“str”对象不支持项分配谢谢。为字符串重新指定一个新名称就像一个符咒。也谢谢你的正则表达式,我还没学会呢!