如何在Python中统计含转义序列的字符串所有元素数量?
解决Python中转义序列按字面字符计数的问题
要实现将转义序列(如\n、\xa0)按字面字符数统计(\n算2个,\xa0算4个),可以通过将字符串转换为字面量表示后再统计长度的方法实现:
核心思路
Python的repr()函数会返回字符串的字面量表示形式,该形式会把所有转义序列展开为对应的字面字符(比如\n会变成\\n,即两个独立字符;\xa0变成\\xa0,即四个独立字符)。去掉repr()结果首尾的引号后,直接统计长度就能得到所需的总元素数。
代码实现
# 原字符串 s = '\r\n\r\n\r\n \r\n \xa0\xa0\r\nIntroduction\r\n\r\n\r\nHello\r\n\r\nWorld\r\nProblems...\r\nHow to calculate numbers...\r\nConclusion\r\n\r\n\r\n\xa0\r\n\r\nHello world.' # 获取字面量表示并去掉首尾引号 literal_str = repr(s)[1:-1] # 统计总元素数 total_count = len(literal_str) print(total_count)
说明
- 该方法适用于所有Python转义序列(如
\t、\b、\\等),都会按字面字符数统计。 - 普通可见字符(如字母、数字、空格、逗号)会保持原样,每个字符计为1个。
内容的提问来源于stack exchange,提问作者J.H
相关产品推荐
相关产品推荐

