【问题标题】:How i can replace in a list of strings "\\" with "\" in Python我如何在 Python 中用“\”替换字符串列表中的“\\”
【发布时间】:2020-03-18 08:24:45
【问题描述】:

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

['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") 因为我有更多字符要替换。

如果我可以在没有导入的情况下解决,那就太好了。

【问题讨论】:

  • 那些已经是单反斜杠字符了。您无需进行任何更换。您只是还不熟悉 repr 和转义的工作原理,因此您对列表的显示方式感到困惑。
  • 反斜杠是 Python 中的转义字符。
  • @krishnakant 不,它处理一个稍微不同的问题,AFAICT。或者至少,在不同的层面上。

标签: python string list replace special-characters


【解决方案1】:

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

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

字符串的“真实”内容可能是字母、数字、标点符号等,这使得显示起来非常容易。但想象一个包含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] 之类的东西是否按预期工作;最好使用另一个变量作为循环变量,例如 [element.<something> for element in listcancion]。)

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 2022-11-22
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2010-10-20
    • 2019-02-26
    相关资源
    最近更新 更多