为了账号安全,请及时绑定邮箱和手机立即绑定

如何从python的列表中删除转义字符(\)?

如何从python的列表中删除转义字符(\)?

慕哥6287543 2021-10-26 16:29:01
我想从 python 中的字符串列表中删除额外的 '\'。例如,如果我的列表是这样的:cmd = ['a', 'b', '{word}\\\\*', 'd']应该是这样的:cmd = ['a', 'b', '{word}\\\*', 'd']  # I need this exact result如果我在单独打印每个字符串的同时遍历这个列表,我就能得到字符串“{word}\*”。同时,将其作为整个列表打印时,它显示为:['a', 'b', '{word}\\\\*', 'd']程序:import recmd = ['a', 'b', '{word}\\\\*', 'd']for i in cmd:    print("val : ", i)print("whole list : ", cmd)输出:C:\Users\Elcot>python test.pyval :  aval :  bval :  {word}\\*val :  dwhole list :  ['a', 'b', '{word}\\\\*', 'd']预期结果:whole list :  ['a', 'b', '{word}\\*', 'd']
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您可以将字符串转换为字节,然后使用bytes.decodewithunicode_escape作为编码的方法来取消转义给定的字符串:

cmd = [bytes(s, 'utf-8').decode('unicode_escape') for s in cmd]


查看完整回答
反对 回复 2021-10-26
?
FFIVE

TA贡献1797条经验 获得超6个赞

如果您确实在处理赋值语句,那么您应该了解Python 中的原始字符串。原始字符串文字使用这样的r前缀:


rstr = r"raw string"

regex = r"\(.*\)"

原始字符串的目的是减少使用反斜杠字符时所需的转义量;它旨在与其他处理引擎(如 Windows 路径或正则表达式)一起使用,其中处理引擎将执行自己的反斜杠处理。原始字符串中的转义序列要少得多。


您的示例'word\\\\*'通常会word\\*被字符串反斜杠转义机制转换为。但是,如果您想要一个正好包含三个反斜杠的字符串,您可以说r'word\\\*'.


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 837 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号