如何在Python3中从反斜杠符号中拆分反斜杠

如何在Python3中从反斜杠符号中拆分反斜杠,python,Python,这是我的单词,我需要将其拆分为列表,但不幸的是,我的单词以t开头,看起来像反斜杠符号\t->(Tab) animal = "\\tiger\tortoise\tropicbird" animals = animal.split('\\') print(animals) 输出 ['', 'tiger\tortoise\tropicbird'] 期待 ['', 'tiger','tortoise','tropicbird'] 有人有过这样的经历吗。我该怎么办 谢谢你应该 animal = r"

这是我的单词,我需要将其拆分为列表,但不幸的是,我的单词以
t
开头,看起来像反斜杠符号
\t->(Tab)

animal = "\\tiger\tortoise\tropicbird"
animals = animal.split('\\')
print(animals)
输出

['', 'tiger\tortoise\tropicbird']
期待

['', 'tiger','tortoise','tropicbird']
有人有过这样的经历吗。我该怎么办

谢谢

你应该

animal = r"\\tiger\tortoise\tropicbird"

相反。请注意使
\
文字化的
r

反斜杠用作转义字符。正如用户2357112所提到的,在您的动物变量中,唯一真实的t是单词“tiger”中的t

你应该做的是修改你的动物变量

animal=“\\tiger\tortoise\tropicbird”
animal=“\\tiger\\tortoise\\tropicbird”

您可以通过以下方式完成此操作:
animal=animal.replace('\t','\\t')

然后
animals=animal.split(“\\”)
将为您提供预期的答案

>>> animal = "\\tiger\tortoise\tropicbird"
>>> animal = animal.replace('\t', '\\t')
>>> animal
'\\tiger\\tortoise\\tropicbird'
>>> animals = animal.split('\\')
>>> animals
['', 'tiger', 'tortoise', 'tropicbird']

如果希望字符串中有实际的t,则不应编写
“\\tiger\tortoise\tropicbird”
。只有第一个t才是真正的t;其他的是
\t
转义序列的一部分,表示制表符。正确的处理方法取决于字符串的来源。如果它们都是硬编码的字符串文字,则需要正确地转义它们;反斜杠的转义序列是两个反斜杠。如果它们来自用户输入、web请求或文件等,那么转义序列处理将不会发生,并且您实际上不会遇到您看到的问题(但是如果您检查输入的
repr
并看到一堆您不理解的额外反斜杠,您可能会认为您有问题)@user2357112我同意你的看法,我应该重新设计输入。这里有很多不同的方法。但是,首先要注意一件事:在非原始字符串中使用反斜杠时要非常小心。所以,我想问:这里的反斜杠仅仅是一个分隔字符吗?如果是这样,为什么它是反斜杠?@1313e是的,在第一次设计中,我们定义了一个反斜杠,通过忘记反斜杠符号来分隔单词。现在我们已经重新设计了,首先将所有转义的反斜杠(或用作分隔符的任何东西)替换为空格,然后简单地使用
animals=animal.split()
。这将返回一个列表,其中已自动删除空条目。