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() functionThe 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() functionThe 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.


