Python 打印字符串列表的原始字符串值的长度

Python 打印字符串列表的原始字符串值的长度,python,list,rawstring,Python,List,Rawstring,我有一个字符串列表,如下所示: elements=['abc\n','def\t'] 我想在编译转义字符之前获得的长度。如果它们在一个变量中,我知道怎么做,例如: org = 'abc\n' # Original string len(org) # Will give 4 raw = r'abc\n' # Raw string len(raw) # Will give 5 as it counts the \n as 2 chars 我试过这样做,但不起作用,任何帮助都将不胜感激 for e

我有一个字符串列表,如下所示:

elements=['abc\n','def\t']

我想在编译转义字符之前获得的长度。如果它们在一个变量中,我知道怎么做,例如:

org = 'abc\n' # Original string
len(org) # Will give 4
raw = r'abc\n' # Raw string
len(raw) # Will give 5 as it counts the \n as 2 chars
我试过这样做,但不起作用,任何帮助都将不胜感激

for e in elements:
    print(len(e)) # Gives length of compiled string
    print(len(re)) # Throws error
    print(len(r+e)) # Throws error

谢谢

您可以尝试使用“unicode_escape”对字符串进行编码,以获得所需的结果

代码:

elements=['abc\n','def\t']
对于元素中的e:
打印(len(例如编码(“unicode_escape”))
输出

5
5

r
告诉我们如何存储文本字符串,一旦它被存储,你就不能更改它,你就不能访问它的“原始格式”。你应该对字符串和原始字符串做更多的研究。
r
说明符只是说反斜杠必须解释为文字反斜杠,而不是转义下一个字符。在编译原始字符串中的转义字符之前,没有存储任何“原始字符串”——它将
\n
解释为换行符。“原始字符串的长度,即在编译转义字符之前”不存在这种情况。首先,转义字符不是“编译的”;它们被解析。其次,这发生在任何代码有机会运行之前。第三,任何给定的字符串可以以多种不同的方式创建,它不一定有任何这样的来源来考虑。
r
前缀通过更改Python用于解析文本源的规则来工作。它不是对已有字符串的某种操作。一旦了解了原始字符串是什么,一个简单的解决方法是计算需要逃出的特殊字符的数量并将其添加到字符串的长度。您可以使用
repr
来获取它。这将包括一组可能的转义序列,可以从源代码生成原始字符串。它还将包括开头和结尾的引号。