第19讲:回文联有点小问题
list1 == list(list2)为什么要这样写,而不可以直接list1 == list2??def palindrome(string):
list1 = list(string)
list2 = reversed(list1)#reversed:倒转
if list1 == list(list2):
return '是回文联!'
else:
return '不是回文联!'
string = input('请输入一句话:')
print(palindrome(string)) 本帖最后由 jackz007 于 2021-3-12 15:32 编辑
reversed() 的功能是使序列倒序,假如 s = 'ABC',那么,reversed(s) = 'CBA'。显然,如果一个字符串与自己的反序形式相同,那就必是回文联无疑。当然,通过字符串切片也可以达到同样的效果,如果 s = 'ABC',那么,s[::-1] = 'CBA',所以,如果 s == s[:: -1]也同样可以判定 s 就是回文联。 本帖最后由 Peteryo01223 于 2021-3-12 15:34 编辑
你说得对,直接写 list1 == list2 就行。
def palindrome(string):
list1 = list(string)
list2 = list(reversed(list1))
if list1 == list2:
return '是回文联!'
else:
return '不是回文联。'
string = input('请输入一句话:')
print(palindrome(string))
你那个复杂的写法,是引用的 FishC 的标准答案? reversed得到的是一个可迭代对象,用list才能转换为列表
>>> a=list('abc')
>>> b=reversed(a)
>>> b
<list_reverseiterator object at 0x0000000002C0A5B0> Peteryo01223 发表于 2021-3-12 15:32
你说得对,直接写 list1 == list2 就行。
你那个复杂的写法,是引用的 FishC 的标准答案?
大佬,我差点被你搞蒙了,你的代码和我原代码不一样好吧
我的是这样:list2 = reversed(list1)
你的是这样:list2 = list(reversed(list1))
你这是在呼我吗。。。。 jackz007 发表于 2021-3-12 15:29
reversed() 的功能是使序列倒序,假如 s = 'ABC',那么,reversed(s) = 'CBA'。显然,如果一个字符 ...
额,我没太看明白,如果你是有自己的做法,就把整个代码放进来呗 孤妓与酒 发表于 2021-3-12 15:38
大佬,我差点被你搞蒙了,你的代码和我原代码不一样好吧
我的是这样:
你的是这样:
抱歉哈,没仔细看你的,我自己顺手写了。。。 Peteryo01223 发表于 2021-3-12 15:32
你说得对,直接写 list1 == list2 就行。
你那个复杂的写法,是引用的 FishC 的标准答案?
我们的差不了多少,......这个我本来是想把这之间的代码加粗的,不知道为啥就成这样了 冬雪雪冬 发表于 2021-3-12 15:34
reversed得到的是一个可迭代对象,用list才能转换为列表
这样啊,明白了,谢谢大佬
页:
[1]