Python 的 reverse() 用于回文

6 投票
7 回答
19652 浏览
提问于 2025-04-16 13:03

我刚开始学习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 比较的字符串。

撰写回答