Python – Test if list is Palindrome
In programming, determining if a list is a palindrome is a classic exercise that can sharpen your algorithmic thinking and Python skills. A palindrome is a sequence that remains the same even when reversed. Given a List, check if it is palindrome.
Input: test_list = [4, 5, 4]
Output: True
Explanation: List is same from front and rear.
Input: test_list = [4, 5, 5]
Output: True
Explanation: List is not same from front and rear.
Method 1: Using list slicing
In this, we extract the first and reverse 2nd half of the list, and then compare for equality, if found equal, then we conclude its palindrome.
Python3
test_list = [ 1 , 4 , 5 , 4 , 1 ]
print ( "The original list is : " + str (test_list))
reverse = test_list[:: - 1 ]
res = test_list = = reverse
print ( "Is list Palindrome : " + str (res))
|
Output
The original list is : [1, 4, 5, 4, 1]
Is list Palindrome : True
Time complexity: O(n)
Auxiliary space: O(n)
Method 2 : Using reversed()
In this, we simply reverse the list and check if both original list and reversed list is similar.
Python3
test_list = [ 1 , 4 , 5 , 4 , 1 ]
print ( "The original list is : " + str (test_list))
rev_list = list ( reversed (test_list))
res = rev_list = = test_list
print ( "Is list Palindrome : " + str (res))
|
Output
The original list is : [1, 4, 5, 4, 1]
Is list Palindrome : True
Time Complexity: O(n) where n is the number of elements in the list “test_list”. reversed() performs n number of operations.
Auxiliary Space: O(1), no extra space is required
Method 3 : Using reverse() method
One of the best approach is to reverse the list and then compare it to the original list. If they match, the list is a palindrome.
Python3
def isPalindrome(x):
y = []
y.extend(x)
x.reverse()
if (x = = y):
return True
return False
test_list = [ 1 , 4 , 5 , 4 , 1 ]
print ( "The original list is : " + str (test_list))
ans = isPalindrome(test_list)
if ans:
print ( "Is palindrome ? " + "Yes" )
else :
print ( "Is palindrome ? " + "No" )
|
Output
The original list is : [1, 4, 5, 4, 1]
Is palindrome ? Yes
Approach 4: Using Iterative comparision
Testing if a list is a palindrome using an iterative approach involves comparing elements from both ends of the list towards the center. Iterate through the first half of the input list.Compare the elements at the current position with their corresponding elements from the end of the list.If any pair of elements doesn’t match, return No
as it’s not a palindrome.If all pairs match, return Yes
indicating that the list is a palindrome.
Python3
def is_palindrome(input_list):
length = len (input_list)
for i in range (length / / 2 ):
if input_list[i] ! = input_list[length - i - 1 ]:
return 'No'
return 'yes'
test_list1 = [ 4 , 5 , 4 ]
test_list2 = [ 4 , 5 , 5 ]
print (is_palindrome(test_list1))
print (is_palindrome(test_list2))
|
Time Complexity: O(n), where n is the length of the input list.
Space Complexity: O(1), which is constant.
Last Updated :
25 Aug, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...