Python Program: Find Palindromes and Anagrams

Meenakshi Agarwal
By
Meenakshi Agarwal
Hi, I'm Meenakshi Agarwal. I have a Bachelor's degree in Computer Science and a Master's degree in Computer Applications. After spending over a decade in large...
4 Min Read
Python lambda to find Palindromes and Anagrams in a list of strings

This tutorial demonstrates how to find palindromes and anagrams in a list of strings using Python lambda. You’ll see fully working coding snippets and should be able to execute with Python 3.

We will use a Lambda expression inside the filter() function to find all the palindromes and anagrams in the string list. In Python, we also speak of lambda as the anonymous function, i.e., a function that doesn’t have a name.

Python Program – Find Palindromes and Anagrams

Let’s first write a Python program that takes a list of strings as input, finds the palindromes, and prints the result.

Use lambda to find palindromes in a list of strings

We’ll apply the anonymous function (Python lambda) to identify palindromes in the list of strings. First, let’s understand what’s a palindrome.

A palindrome is a word, digits, or a sequence of words that comes the same while reading backward.

See the full logic in the below coding snippet.

"""
Program:
 Python program to find palindromes in a list of strings
"""
def get_palindromes(input_string_list): 
   
   print("*******************")
   print("input_string_list = ", input_string_list)
   print("*******************\n")

   # Find the list of palindromes in the strings    
   out_string_list = list(filter(lambda x: (x.lower() == "".join(reversed(x.lower()))), input_string_list)) 

   # Print the list of palindromes in the strings 
   print("*******************")
   print("out_string_list = ", out_string_list)
   print("*******************\n")

def Driver(): 
   input_string_list = ['Python', 'Radar', 'CSharp', 'Madam', 'Programmer', 'Noon', 'Refer', 'Php', 'Go']
   get_palindromes(input_string_list)

if __name__=="__main__": 
   Driver()          # call Driver() function

The result of the above Python code snippet is as follows:

*******************
input_string_list =  ['Python', 'Radar', 'CSharp', 'Madam', 'Programmer', 'Noon', 'Refer', 'Php', 'Go']
*******************

*******************
out_string_list =  ['Radar', 'Madam', 'Noon', 'Refer', 'Php']
*******************

Sometimes, you might also need to convert a list to a string, so have yourself go over it.

Use lambda to find anagrams in a list of strings

We’ll again apply the anonymous function to identify anagrams in the list of strings. First, let’s understand what’s an anagram.

An anagram is a word or phrase constituted by ordering the characters of a different word or phrase.

See the full logic in the below coding snippet.

"""
Program:
 Python program to find anagrams in a list of strings
"""
from collections import Counter

def get_anagrams(input_string_list, test_string): 
   
   print("*******************")
   print("input_string_list = ", input_string_list)
   print("*******************\n")

   # Find the list of anagrams in the strings    
   out_string_list = list(filter(lambda x: (Counter(test_string) == Counter(x)), input_string_list)) 

   # Print the list of anagrams in the strings 
   print("*******************")
   print("out_string_list = ", out_string_list)
   print("*******************\n")

def Driver(): 
   input_string_list = ['Python', 'Program', 'Machine', 'yPtnoh', 'Learning']
   test_string = "ntoyPh"
   get_anagrams(input_string_list, test_string)

if __name__=="__main__": 
   Driver()          # call Driver() function

The result of the above Python code snippet is as follows:

*******************
input_string_list =  ['Python', 'Program', 'Machine', 'yPtnoh', 'Learning']
*******************

*******************
out_string_list =  ['Python', 'yPtnoh']
*******************

To learn more, read our flagship Python tutorial for beginners and advanced learners.

Share This Article
Leave a Comment
Subscribe
Notify of
guest

0 Comments
Newest
Oldest
Inline Feedbacks
View all comments