hiocnm 发表于 2020-8-7 18:34:35

函数作业

为什么if list1 == list2:这里list2一定要改成list(list2)才行啊


def huiwenlian(str1):
    list1 = list(str1)
    list2 = reversed(list1)
    if list1 == list2:
      return '是回文联!'
    else:
      return '不是回文联!'
print(huiwenlian('上海自来水来自海上'))

qiuyouzhi 发表于 2020-8-7 18:35:15

因为reversed返回的是一个reversed对象(你学到类和对象会理解),不能直接用于比较,
需要用list转换一下才行。

zltzlt 发表于 2020-8-7 18:35:19

因为 reversed() 得到的是一个生成器:

>>> reversed()
<list_reverseiterator object at 0x000001D28067C430>需要将这个生成器转化成列表才可以与列表比较

sunrise085 发表于 2020-8-7 18:35:58

因为reversed函数返回值不是列表,是一个可迭代对象,需要用list()转为列表
页: [1]
查看完整版本: 函数作业