简单的问题,但我正在与它挣扎太多时间.基本上我想用\(反斜杠)分割一个字符串.
a = "1\2\3\4"
Run Code Online (Sandbox Code Playgroud)
试图逃避反斜杠但它似乎不起作用:
print(a.split('\'))
print(a.split('"\"'))
print(a.split('\\'))
print(a.split('"\\"'))
Run Code Online (Sandbox Code Playgroud)
我想得到这个结果:
['1','2','3','4']
Run Code Online (Sandbox Code Playgroud)
提前谢谢了
Hen*_*ter 42
你有正确的想法逃避反斜杠,但不管它看起来如何,你的输入字符串实际上没有任何反斜杠.你也需要在输入中逃避它们!
>>> a = "1\\2\\3\\4" # Note the doubled backslashes here!
>>> print(a.split('\\')) # Split on '\\'
['1', '2', '3', '4']
Run Code Online (Sandbox Code Playgroud)
您也可以使用原始字符串文字作为输入,如果它可能有许多反斜杠.这种符号看起来更清晰(IMO),但确实有一些局限性:阅读文档!
>>> a = r"1\2\3\4"
>>> print(a.split('\\'))
['1', '2', '3', '4']
Run Code Online (Sandbox Code Playgroud)
如果你到了a其他地方,并且a.split('\\')没有适当地拆分可见的反斜杠,这意味着你在那里有其他东西而不是真正的反斜杠.试着print(repr(a))看看"文字"字符串实际上是什么样的.
>>> a = '1\2\3\4'
>>> print(a)
1???
>>> print(repr(a))
'1\x02\x03\x04'
>>> b = '1\\2\\3\\4'
>>> print(b)
1\2\3\4
>>> print(repr(b))
'1\\2\\3\\4'
Run Code Online (Sandbox Code Playgroud)
您可以使用反斜杠拆分字符串a.split('\\').
这种情况在您的情况下不起作用的原因是\x您的分配a = "1\2\3\4"被解释为八进制数.如果在字符串前加上r,则会得到预期的结果.
| 归档时间: |
|
| 查看次数: |
37397 次 |
| 最近记录: |