【发布时间】:2020-07-01 07:31:24
【问题描述】:
def make_word_list(file_object):
return [line.strip() for line in file_object]
def is_anagram(s1, s2):
return sorted(s1) == sorted(s2)
def find_anagrams(word_list):
anagram_dict = {}
for word in word_list:
k = str(sorted(word))
anagram_dict[k] = anagram_dict.get(k, []) + [word]
for k, v in sorted(anagram_dict.items()):
if len(v) > 1:
print(str(k), str(v))
if __name__ == '__main__':
fin = open('words.txt')
word_list = make_word_list(fin)
find_anagrams(word_list)
当我运行这个程序时,它会一直打印字符串(“k”)作为字符串列表。我检查了类型,它确认它是一个字符串。请帮忙。
【问题讨论】:
-
k = str(sorted(word))sorted 返回一个列表。k包含列表的字符串表示形式。 -
使用
"".join(sorted(word))将列表重新组合成一个字符串。
标签: python string list loops for-loop