Python 比较运算符
Python comparison operator
我不明白为什么我的 if-else 语句没有按预期 运行。我试图创建代码来测试回文字符串。我的打印功能告诉我反向方法有效,但是当我进入比较阶段时,我无法将其变为 return 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")
这 return 是错误的。我也尝试将 if 语句更改为 if myList is new:
但不幸的是它仍然是 returns False。
任何见解表示赞赏!
list.reverse()
就地,这意味着它反转了它被调用的列表,但没有 return 任何东西。
行 print new
应该打印 None
,因此 myList == new
将是 False
。
相反,使用不在原地的 [::-1]
和 return 新的反向列表,或者使用更简单的方法来检测回文,例如:
def is_palindrome(iterable):
return iterable == iterable[::-1]
我不明白为什么我的 if-else 语句没有按预期 运行。我试图创建代码来测试回文字符串。我的打印功能告诉我反向方法有效,但是当我进入比较阶段时,我无法将其变为 return 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")
这 return 是错误的。我也尝试将 if 语句更改为 if myList is new:
但不幸的是它仍然是 returns False。
任何见解表示赞赏!
list.reverse()
就地,这意味着它反转了它被调用的列表,但没有 return 任何东西。
行 print new
应该打印 None
,因此 myList == new
将是 False
。
相反,使用不在原地的 [::-1]
和 return 新的反向列表,或者使用更简单的方法来检测回文,例如:
def is_palindrome(iterable):
return iterable == iterable[::-1]