我一直在研究这个Palindrome Python问题。这是提示:
'''
palindrome(T) is True if T is the same as
the backwards version of T, and otherwise
is False.
palindromes(L) returns a list of the palindromes in L
>>> palindrome("madam")
True
>>> palindrome([6,9,6])
True
>>> palindrome("T r ")
False
>>> palindromes( [ [1], [3,2], [5,1,5], [0,0,1], [7,3,7,3] ] )
[[1], [5, 1, 5]]
>>> palindromes( "son daughter dad mom ewe any".split() )
['dad', 'mom', 'ewe']
>>> palindromes( "stressed desserts stop pots live evil".split() )
[]
>>> palindromes( ["stressed desserts", "stop pots", "can can", "too few"] )
['stressed desserts', 'stop pots']
'''
if __name__ == "__main__":
import doctest
doctest.testmod()
这是我到目前为止所写的内容:
def palindrome(L):
if L == L[::-1]:
return True
else:
return False
def palindromes(L):
return filter(palindrome ,range(6))
当它们是简单的真/假答案时,我能够获得前四个测试,但是当我必须开始使用过滤器功能时,我开始遇到麻烦。我知道我必须做某种索引,但我不确定如何。
答案 0 :(得分:1)
为什么使用range(6)
你应该这样做:
def palindromes(L):
return filter(palindrome ,L)
并且,正如评论中所建议的那样,你应该这样做:
def palindrome(L):
return L == L[::-1]
当您使用==
是比较运算符时,您将获得true或false,以便该行足够。