我正在尝试使用下面的两行从字符串中删除' - '字符,但它仍然返回原始字符串。如果我执行底部两行,它可以工作,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())
答案 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 );
});