input: ['abc', 'cab', 'cafe', 'face', 'goo']
output: [['abc', 'cab'], ['cafe', 'face'], ['goo']]
Проблема проста: она группируется по анаграммам. Порядок не имеет значения.
Конечно, я могу сделать это на С++ (это мой родной язык). Но мне интересно, что это можно сделать в одной строке с помощью Python. EDITED: если это невозможно, возможно, 2 или 3 строки. Я новичок в Python.
Чтобы проверить, являются ли две строки анаграммой, я использовал сортировку.
>>> input = ['abc', 'cab', 'cafe', 'face', 'goo']
>>> input2 = [''.join(sorted(x)) for x in input]
>>> input2
['abc', 'abc', 'acef', 'acef', 'goo']
Я думаю, что это можно сделать, объединив map
или так. Но мне нужно использовать dict
как хеш-таблицу. Я еще не знаю, возможно ли это в одной строке. Любые подсказки будут полезны!