【发布时间】:2016-05-21 04:14:59
【问题描述】:
我写了一个python函数来按字谜对单词列表进行分组:
def groupByAnagram(list):
dic = {}
for x in list:
sort = ''.join(sorted(x))
if sort in dic == True:
dic[sort].append(x)
else:
dic[sort] = [x]
for y in dic:
for z in dic[y]:
print z
groupByAnagram(['cat','tac','dog','god','aaa'])
但这只会返回:
啊啊
神
tac
我做错了什么?
【问题讨论】:
-
你期待什么?
-
@MartinThoma 我期待所有 5 个字:aaa dog god cat tac in that order
-
与你的问题无关,但
if sort in dic == True:应该简单写成if sort in dic:。 -
这正是导致问题的原因。
-
旁注:您可以使用
defaultdict来简化您的代码。
标签: python string algorithm hashtable