def group_words(words_list):
groups = {}
for word in words_list:
key = ''.join(sorted(word))
if key in groups:
groups[key].append(word)
else:
groups[key] = [word]
return list(groups.values())
def group_anagrams(words):
anagram_dict = {}
for word in words:
sorted_word = "".join(sorted(word))
if sorted_word not in anagram_dict:
anagram_dict[sorted_word] = [word]
else:
anagram_dict[sorted_word].append(word)
return list(anagram_dict.values())
Вот функция на Python, которая делает то, что вы просите:
from collections import defaultdict
def group_words(words):
groups = defaultdict(list)
for word in words:
key = ''.join(sorted(word))
groups[key].append(word)
return list(groups.values())
Вы можете использовать эту функцию в своем коде. Например: words = ["eat", "tea", "tan", "ate", "nat", "bat"]
groups = group_words(words)
print(groups)
def group_words(words):
groups = {}
for word in words:
key = ''.join(sorted(word))
if key in groups:
groups[key].append(word)
else:
groups[key] = [word]
return list(groups.values())
words = ["eat", "tea", "tan", "ate", "nat", "bat"]
print(group_words(words))