slhzsy 发表于 2020-3-18 11:27:49

关于.reverse()和reversed()

def couplet(m):
    list1 = list(m)
    list2 = list(reversed(list1))
    if list1 ==list2:
      return '是回文联!'
    else:
      return '不是回文联!'
z=input("请输入:")
print(couplet(z))


这样程序可以打出来,但是如果把第三行改成list2=list1.reverse(),程序就得不到正确的答案。
是怎么一回事?

qiuyouzhi 发表于 2020-3-18 11:29:20

列表的内置方法大部分没有返回值!!!!
说过多少遍了啊。。

sunrise085 发表于 2020-3-18 11:35:10

reversed(list1)函数是将list1进行翻转,返回一个可迭代独享。然后你用list()可以将之转为列表赋值给list2。
列表的内置方法list1.reverse()是将原列表进行翻转,直接修改的原列表,并不会返回一个可迭代对象。所以不能将之赋值给list2

_2_ 发表于 2020-3-18 12:38:08

列表的内置方法都是原地修改原来的列表,返回None

zltzlt 发表于 2020-3-18 13:05:51

请见:https://fishc.com.cn/thread-159315-1-1.html

列表的 reverse() 方法没有返回值

wangka 发表于 2020-3-18 13:30:22

哎,新鱼友

陈尚涵 发表于 2020-3-24 15:18:53

reverse是得到值并设置成那个值,也就是得到值并设置;reversed是临时设置一个值,并不会设置,也就是创造临时的值并不设置。把reversed改成reverse就和b = a和b = (a = 5)是一样的。

陈尚涵 发表于 2020-3-24 15:19:25

哎,新鱼油啊!
页: [1]
查看完整版本: 关于.reverse()和reversed()