繁体   English   中英

从python中的另一个函数调用一个函数

[英]calling a function from another function in python

我已经编写了此函数,该函数将字符串用于查看它们是否为字谜:

def anagram_check(str_x, str_y):
    x = string1.replace(" ","")
    y = string2.replace(" ","")
    lower1 = x.lower()
    lower2 = y.lower()
    sorted1 = sorted(lower1)
    sorted2 = sorted(lower2)
    if sorted1 == sorted2:
        return True
    else:
        return False

这个函数可以正常工作,问题是现在我需要在另一个函数中使用这个函数,以便在文本文件中找到字谜。 我想打印一个包含所有字谜的元组列表。 这是我到目前为止所做的

def anagrams_finder(words_num):
    anagrams = []
    f = open("words.txt")
    a = list(f)
    list1 = ([s.replace('\n', '') for s in a])
    list2 = ([i.lower() for i in list1])    
    list3 = list2[0:words_num] #number of words from text that need to be checked.   
    for i in list3:

....

我尝试使用for循环,while循环,appand ....,但是似乎没有任何作用。 如何使用第一个功能来帮助我进行第二个功能? 请帮忙...

如您所说,您的anagram_check()函数可以正常工作。 但是,对于这个问题,一个更有用的功能是将给定单词转换为其“规范”形式的功能,这样两个字谜都将具有相同的规范形式。

其中一种功能是:

def canonical(word):
  return ''.join(sorted(word.lower()))

现在,您所要做的就是拥有一个字典,该字典将规范形式映射到相应单词的列表。 您可以在文本文件上单击一次以填充此词典。 从字典中生成所需的元组列表很简单。

由于这是家庭作业,因此我将其余细节留给您找出。

yupp,来这里和aix说同样的话:

对于一大段文本中所有可能的单词对,都需要很长时间才能调用字谜检查器功能,因此您将需要一个不错的哈希函数来查找字谜。

anagram-finder哈希函数将具有两个属性:

  1. 对于作为字谜的两个单词返回相同的值
  2. 如果两个不同单词的返回值相同,则两个不同单词很适合作为字谜(它们可能是字谜,但可能不是)

aix提出的哈希函数(对单词中的字母进行排序)绝对足以查找字谜,我还针对相对较大的文本块(例如书的大小)使用了该函数,以达到相同的目的,并且运行速度很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM