Palindrome Python程序

时间:2011-10-13 07:05:31

标签: python palindrome

我一直在研究这个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))

当它们是简单的真/假答案时,我能够获得前四个测试,但是当我必须开始使用过滤器功能时,我开始遇到麻烦。我知道我必须做某种索引,但我不确定如何。

1 个答案:

答案 0 :(得分:1)

为什么使用range(6)

你应该这样做:

def palindromes(L):
    return filter(palindrome ,L)

并且,正如评论中所建议的那样,你应该这样做:

def palindrome(L):
    return L == L[::-1]

当您使用==是比较运算符时,您将获得true或false,以便该行足够。