从python中的字符串中删除特殊字符

时间:2016-04-01 17:04:46

标签: python

我正在尝试使用下面的两行从字符串中删除' - '字符,但它仍然返回原始字符串。如果我执行底部两行,它可以工作,sha和sha2都是字符串。有什么想法吗?

sha = hash_dir(filepath) # returns an alpha-numeric string

print sha.join(c for c in sha if c.isalnum())

sha2 = "-7023680626988888157"

print sha2.join(c for c in sha2 if c.isalnum())

2 个答案:

答案 0 :(得分:5)

python字符串是不可变的 - .join不会更改字符串,它会创建一个 new 字符串(这是你看到的打印)。< / p>

您需要将结果重新绑定到名称,以使其看起来像在本地名称空间中更改的字符串:

sha2 = ''.join(c for c in sha2 if c.isalnum())

另请注意,在表达式x.join(...)中,x是在传递给join的iterable中的每个项之间插入的内容。在这种情况下,您不希望在字符之间插入任何额外内容,因此x应为空字符串(正如我上面使用的那样)。

答案 1 :(得分:5)

你的意思是:

return ref.once( "value", function( snapshot ) {
        //success
        peep = snapshot;
        return peep;

    }, function ( errorObject ) {
        //error
        //console.log( "The read failed: " + errorObject.code );
    });