def isPalindrom(self):
    return all(i == j for i, j in itertools.zip_longest((i.lower() for i in
        self if i not in ' ,.;:?!'), (j.lower() for j in self[::-1] if j not in
        ' ,.;:?!')))
Быстрый и питонический способ узнать, является ли строка палиндромом