我试图做这个练习,你必须说一句,检查它是否是回文。我尝试将一个字符串放入列表然后将其反转并将其转回字符串,但反向方法因某些原因对我不起作用,我检查并且使用情况正确。
word = input('Give me a word:\n')
b = []
wordLetters = word.split()
b = wordLetters.reverse()
word2 = ''.join(b)
if word == word2:
print('Yay')
else:
print('heck')
它只是显示
TypeError:只能加入可迭代的
答案 0 :(得分:0)
reverse()方法不会返回任何内容,只会在Python 3中反转列表本身。所以加入wordLetters而不是b。希望这可以解决问题。
答案 1 :(得分:0)
在reverse
的Python list
方法中进行就地操作,例如它会修改您应用此操作的列表。此方法没有返回值。
l = [1, 2, 3, 4]
l.reverse()
print(l)
输出:
[4, 3, 2, 1]
如果您尝试获取reverse
返回的值,您将获得None
:
print([1, 2, 3, 4].reverse())
输出:
None
如果您需要列表的反向副本,则应使用reversed
功能:
l = [1, 2, 3, 4]
r = reversed(l)
print(r)
print(list(r))
输出:
<list_reverseiterator object at 0x7ff37e288ef0>
[4, 3, 2, 1]
请注意,它返回迭代器,而不是列表本身。您可以将该迭代器传递给join
函数,也可以使用list
构造函数从中构建一个列表。
方法sort
和函数sorted
也是如此。
答案 2 :(得分:0)
正如documentation所述:
list.reverse()
反转列表中的元素。
这意味着这种方法不会返回任何内容(否则会说明它返回的内容)并且它会就地反转列表。
同样str.split
将(默认情况下)拆分为空格,这可能不是问题描述中的意图。
我的建议是简单地使用切片表示法来反转字符串:
word = input('Enter your word')
if word == word[::-1]:
print('Yay')
else:
print('heck')