这是一个程序,可以找到大于15个字母的字符。这里没有语法错误,但输出不符合预期。如果你能指出程序中的逻辑错误,我将非常感激。 我从http://thinkpython.com/code/words.txt下载了单词列表 PS-我是Python新手。如果有更好的方法,请告诉我....
def anagrams():
fin1=open('words.txt')
val=-1
fin2=open('dic.txt')
for i in range(100000):
fin2.seek(0)
word1=fin1.readline()
if len(word1)>18:
for j in range(100000):
word2=fin2.readline()
flag=1
if len(word2)==len(word1)and word1!=word2:
for k in range(len(word1)-1):
if word1.find(word2[k])==-1:
flag=1
break
else:
flag=0
if flag==0:
print word2,'is anagram of ',word1,'\n'
答案 0 :(得分:0)
与您发布的代码无关,但您可以使用简单的Counter
对象执行此操作,这将保留所有字符的计数。
>>> from collections import Counter
>>> def is_anagram(string1, string2):
... return Counter(string1) == Counter(string2)
...
>>> is_anagram("anagram anagram", "gramana anagram")
True
答案 1 :(得分:0)
我看到的一个问题是,如果两个单词具有相同的字母但数量不同,那么当它们不是时,你会声称它们是字谜。
一些改进:
Counter
)