Python 的 reverse() 用于回文
我刚开始学习Python,想要测试用户输入的字符串是否是回文。我的代码是:
x=input('Please insert a word')
y=reversed(x)
if x==y:
print('Is a palindrome')
else:
print('Is not a palindrome')
但是这个代码总是返回错误,因为y变成了像<reversed object at 0x00E16EF0>
这样的东西,而不是反转后的字符串。我哪里搞错了呢?你们会怎么写这个代码呢?
7 个回答
2
为了方便以后使用,这里有个从上面的回答中提取的简单的 lambda 函数,可以快速检查一个字符串是否是回文:
isPali = lambda num: str(num) == str(num)[::-1]
使用示例:
isPali(9009) #returns True
8
reversed
是一个可以返回迭代器的函数,你可以用 join
方法把它变成一个字符串:
y = ''.join(reversed(x))
19
试试 y = x[::-1]
。这个方法用的是切片,可以把字符串反过来。
reversed(x)
会返回一个迭代器,让你可以反向遍历字符串中的字符,但它不是一个可以直接和 x
比较的字符串。