我编写了一个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'])
但这只会返回:
AAA
神
TAC
我做错了什么?
答案 0 :(得分:9)
if sort in dic == True:
感谢operator chaining,此行等同于
if (sort in dic) and (dic == True):
但是dic是一本字典,所以它永远不会与True相提并论。只需完全放弃== True比较。
if sort in dic:
答案 1 :(得分:1)
删除" == True"在你的if子句中。你可以在dic中检查排序。
将if子句更改为:
stream.Position = 0;
var bmp = BitmapFactory.DecodeStream(stream);
一切都按预期工作。
您还可以使用collections包的默认dict删除if子句。这样,您不必每次都检查是否必须为dict创建新列表。
if sort in dic: