Python 字符串长度相同但内容不同? 使用 repr() 和 字节比较技巧
在 Python 中,即使两个字符串的长度相同,但使用 len() 函数却返回不同的值时,如何找出字符串差异?
可以使用 repr() 函数来查看字符串的原始表示,包括特殊字符和空格等。例如:
s1 = 'hello world'
s2 = 'hello world'
print(repr(s1))
print(repr(s2))
print(len(s1))
print(len(s2))
这段代码输出的结果为:
'hello world'
'hello world'
11
11
可以看到,两个字符串的原始表示相同,长度也相同。如果仍然认为两个字符串不同,可以尝试将它们转换为字节数组,然后逐个字节比较。例如:
s1_bytes = s1.encode('utf-8')
s2_bytes = s2.encode('utf-8')
for i in range(len(s1_bytes)):
if s1_bytes[i] != s2_bytes[i]:
print('difference at position', i)
这段代码会检查两个字符串的每个字节是否相同,如果发现不同,则输出该字节在字符串中的位置。如果没有输出,则说明两个字符串完全相同。
原文地址: https://www.cveoy.top/t/topic/nHSn 著作权归作者所有。请勿转载和采集!