还有个问题
def palindrome(string):list1 = list(string)
list2 = reversed(list1)
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
print(palindrome('上海自来水来自海上'))
为什么list1==list(list2),而不是list1==list2 因为 reversed() 得到的不是列表,是一个迭代器,所以要使用 list() 将它转化为列表后再和 list1 比较。 reversed 函数返回一个反转的迭代器。
迭代器 不是列表 >>> s='345678'
>>> l1=list(s)
>>> l1
['3', '4', '5', '6', '7', '8']
>>> l2=reversed(l1)
>>> l2
<list_reverseiterator object at 0x00000218A8923BA8>
>>> list(l2)
['3', '4', '5', '6', '7', '8']
页:
[1]