人人人示走刀口 发表于 2020-4-21 20:31:54

还有个问题

def palindrome(string):
    list1 = list(string)
    list2 = reversed(list1)
    if list1 == list(list2):
      return '是回文联!'
    else:
      return '不是回文联!'
print(palindrome('上海自来水来自海上'))
为什么list1==list(list2),而不是list1==list2

zltzlt 发表于 2020-4-21 20:33:50

因为 reversed() 得到的不是列表,是一个迭代器,所以要使用 list() 将它转化为列表后再和 list1 比较。

ba21 发表于 2020-4-21 20:34:32

reversed 函数返回一个反转的迭代器。
迭代器 不是列表

liuzhengyuan 发表于 2020-4-21 20:38:39

>>> 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]
查看完整版本: 还有个问题