【发布时间】:2015-12-27 22:38:51
【问题描述】:
我正在尝试编写一个接受字符串并将字谜分组的程序 将字符串放在列表列表中,按字典顺序排序。
例如下面的字符串:
eat tea tan ate nat bat
应该产生以下输出(行的顺序很重要):
ate eat tea
bat
nat tan
我写的程序:
from collections import defaultdict
def get_anagrams(source):
d = defaultdict(list)
for word in source:
key = "".join(sorted(word))
d[key].append(word)
return d
def print_anagrams(my_string):
word_source = my_string.split(" ")
d = get_anagrams(word_source)
for key, anagrams in d.items():
print(" ".join(sorted(anagrams)))
print_anagrams("eat tea tan ate nat bat")
这个程序产生正确的字谜,但每次我运行程序时,行的顺序与预期的输出变化相比。
所以有时我会得到
nat tan
ate eat tea
bat
其他时候我确实得到了正确的输出
ate eat tea
bat
nat tan
谁能指出我做错了什么?
【问题讨论】:
-
请不要破坏自己的问题,一旦它吸引了答案。
标签: python python-3.x anagram