我无法弄清楚为什么我的if-else语句没有按预期运行。我试图创建代码来测试回文字符串。我的打印功能向我显示反向方法有效,但是当我进入比较阶段时,我无法让它返回True。
以下是代码:
def is_palindrome(a):
myList = []
for i in a:
myList.append(i)
print myList
new = myList.reverse()
print myList
print new
if myList == new:
return True
else:
return False
print is_palindrome("radar")
返回False。我也尝试将if语句更改为if myList is new:
但不幸的是它仍然返回False。
任何洞察力都赞赏!
答案 0 :(得分:5)
list.reverse()
就位,意味着它会反转它所调用的列表,但不会返回任何内容。
行print new
应打印None
,因此myList == new
将为False
。
相反,使用不在原地的[::-1]
并返回一个新的反向列表,或使用更简单的方法来检测回文,例如:
def is_palindrome(iterable):
return iterable == iterable[::-1]