如何在Python中用“ \”替换字符串“ \\”列表中的字符串“ \\”

时间:2019-11-22 09:33:02

标签: python string list replace special-characters

在我的代码中,我有一个位置列表,列表的输出是这样

['D:\\Todo\\VLC\\Daft_Punk\\One_more_time.mp4"', ...

我想用“ \”替换“ \\” (listcancion是包含所有字符串的列表)  我尝试用此代码remplacement = [listcancion.replace('\\', '\') for listcancion in listcancion]或此remplacement = [listcancion.replace('\\\\', '\\') for listcancion in listcancion]或此remplacement = [listcancion.replace('\\', 'X') for listcancion in listcancion] listrandom = [remplacement.replace('X', '\') for remplacement in remplacement]

替换

我只需要更改字符\我就不能做这样的事情("\\Todo", "\Todo"),因为我要替换的字符更多。

如果我不用进口就可以解决,那就太好了。

1 个答案:

答案 0 :(得分:2)

这只是字符串表示形式的问题。

首先,您必须区分字符串的“实际”内容及其表示形式。

字符串的“实际”内容可能是字母,数字,标点符号等,这使得显示起来非常容易。但是想象一下包含a,换行符和b的字符串。如果打印该字符串,则会得到输出

a
b

这就是您的期望。

但是为了使其更紧凑,该字符串的表示形式为a\nb:换行符表示为\n\用作转义符。比较print(a)(与print(str(a))的输出)和print(repr(a))的输出。

现在,为了不将其与包含a\nb的字符串混淆,字符串中的“真实”反斜杠应使用\\的表示形式和打印为a\nb的相同字符串,以a\\nb表示形式,以便与第一个示例区分开。

如果您打印任何内容的列表,即使它们是字符串,也将以逗号分隔的形式显示其组件表示形式。

如果愿意

for element in listcancion:
    print(element)

您会看到该字符串实际上仅包含一个\,其表示形式为\\

(哦,顺便说一句,我不确定[listcancion.<something> for listcancion in listcancion]之类的东西是否按预期工作;最好使用另一个变量作为循环变量n,例如[element.<something> for element in listcancion]。)