大神求解
def palindrome(string):list1 = list(string)
list2 = reversed(list1)
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
print(palindrome('上海自来水来自海上'))
list(list2)能不能写成list2,list(list2)和list2的区别是啥 reversed返回的是一个reversed object,是一个迭代器
而list会调用迭代器的__next__()方法,不用list达不到效果。 list(list2)是吧list2装换成列表
求最佳 list2不是列表
求最佳{:10_254:} 让我们看看reversed后是个什么东西:
>>> a =
>>> b = reversed(a)
>>> b
<list_reverseiterator object at 0x0000000002D9B100>
<list_reverseiterator object at 0x0000000002D9B100>?!这是啥呀!(其实是个迭代器)
然后在list()一下
>>> b = list(b)
>>> b
这样一来,b就成为了我们需要的列表
你的问题的答案是同样的道理 reverse 返回的是一个迭代器,不是列表 reversed() 返回的是一个迭代器,迭代器不能和列表直接比较,所以先要把 list2 转化为列表再和 list1 比较。
页:
[1]