input: ['abc', 'cab', 'cafe', 'face', 'goo']
output: [['abc', 'cab'], ['cafe', 'face'], ['goo']]
问题很简单:它按anagrams分组。顺序无关紧要。
当然,我可以用 C++(那是我的母语)来做到这一点。但是,我想知道这可以通过Python在一行中完成。编辑:如果不可能,可能是 2 或 3 行。我是 Python 的新手。
为了检查两个字符串是否是字谜,我使用了排序。
>>> input = ['abc', 'cab', 'cafe', 'face', 'goo']
>>> input2 = [''.join(sorted(x)) for x in input]
>>> input2
['abc', 'abc', 'acef', 'acef', 'goo']
我认为通过组合map
左右可能是可行的。但是,我需要使用 adict
作为哈希表。我还不知道这在一行中是否可行。任何提示将不胜感激!