Checking for one- or two-dimensional palindrome strings
I made some changes, not sure this is better though. It is all a matter of opinion. This is not intended to be "the" answer.

I however find this quite interesting. The goal in my opinion should always be to write "easy-to-read" code.

i = input("Please enter a phrase to check if it is palindrome: ")
s = str(i).upper() #transform the string to uppercase
l = s.split()

num_words = len(l)
print ('The string to check is: \"{}" and has {} words'.format(s, num_words))

# Variables to test
two_d_palindrome = False
one_d_palindrome = False

# reverse lists
rev_l = list(map(lambda x:x[::-1], l[::-1]))

#two-dimension palindrome check - with two full lists 
if l == rev_l: 
    two_d_palindrome = True
    print ("The string %s is a two-dimension palindrome" % s)

#one-dimension palindrome check
else:
    s = "".join(l) #string without spaces
    if s== s[::-1]:
        one_d_palindrome = True
        print ('%s is a one-dimension palindrome' % s)

#no match
if not (two_d_palindrome or one_d_palindrome):
    print ("Your string is not a palindrome")