Python: Find all anagrams of a string in a given list of strings using Lambda
19. Anagram Finder Lambda
Write a Python program to find all anagrams of a string in a given list of strings using Lambda.
According to Wikipedia an anagram is direct word switch or word play, the result of rearranging the letters of a word or phrase to produce a new word or phrase, using all the original letters exactly once; for example, the word anagram can be rearranged into nag-a-ram.
Sample Solution:
Python Code :
# Import the 'Counter' class from the 'collections' module
from collections import Counter
# Create a list 'texts' containing strings
texts = ["bcda", "abce", "cbda", "cbea", "adcb"]
# Create a string 'str' containing characters 'abcd'
str = "abcd"
# Display a message indicating that the following output will show the original list of strings
print("Orginal list of strings:")
print(texts) # Print the contents of the 'texts' list
# Use the 'filter()' function with a lambda function to filter anagrams of 'abcd' from the list
# Filter elements from 'texts' using the lambda function to keep strings that are anagrams of 'abcd'
# The lambda function checks if the Counter of 'str' (count of characters) is equal to the Counter of each string 'x'
result = list(filter(lambda x: (Counter(str) == Counter(x)), texts))
# Display the anagrams of 'abcd' found in the original list of strings
print("\nAnagrams of 'abcd' in the above string: ")
print(result) # Print the filtered 'result' list
Sample Output:
Orginal list of strings: ['bcda', 'abce', 'cbda', 'cbea', 'adcb'] Anagrams of 'abcd' in the above string: ['bcda', 'cbda', 'adcb']
For more Practice: Solve these Related Problems:
- Write a Python program to group all anagrams from a list of strings into separate lists using lambda.
- Write a Python program to count the number of anagrams for each word in a list using lambda.
- Write a Python program to identify the word with the most anagrams in a given list using lambda.
- Write a Python program to filter out words that do not have any anagrams in the list using lambda.
Go to:
Previous: Write a Python program to find palindromes in a given list of strings using Lambda.
Next: Write a Python program to find the numbers of a given string and store them in a list, display the numbers which are bigger than the length of the list in sorted form. Use lambda function to solve the problem.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.