确定字符串是否是回文
我编写了两个简单的函数来确定字符串是否是回文。我以为它们是等效的,但是2不起作用。为什么是这样?
1个
def is_palindrome(string):
if string == string[::-1]:
return True
else:
return False
2
def is_palindrome(string):
if string == reversed(string):
return True
else:
return False
-
reversed
不会创建字符串,而是创建“反向”对象:>>> reversed('radar') <reversed object at 0x1102f99d0>
因此,字符串
'radar'
不等于objectreversed('radar')
。为了使它起作用,您需要确保reversed
实际评估了该对象:def is_palindrome(string): if string == u''.join(reversed(string)): return True else: return False
所述
u''.join(reversed(string))
插入件u''
在每个字符串中的字符,并且这导致反转串之间正在变成一个字符串对象。