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

2024-07-03 07:16:06 发布

您现在位置: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

这个函数工作得很好,问题是现在我需要在另一个函数中使用这个函数,以便在文本文件中找到anagram。我想打印一个元组列表,其中包含所有的换位符。这就是我到目前为止所做的

^{2}$

。。。。在

我试着用for循环,while循环,appand。。。。但似乎什么都不管用。如何使用第一个函数来帮助我使用第二个函数? 请帮忙。。。在


Tags: 函数字符串returndefchecklowerreplacesorted
2条回答

yupp,来这里跟艾克斯说的是一样的话:

为一大块文本中所有可能的单词对调用anagram checker函数需要很长时间,因此您需要一个合适的哈希函数来查找anagram。在

anagram finder散列函数将具有两个属性:

  1. 返回两个字词的相同值
  2. 如果两个不同单词的返回值是相同的,那么这两个不同的单词是一个很好的候选词(它们可能是anagram,但可能不是)

aix提出的hash函数(即对单词中的字母进行排序)对于查找anagram来说是绝对足够的,我也将这个函数用于相对较大的文本块(比如一本书的大小),而且它的工作速度很快。在

正如您所说,anagram_check()函数工作正常。然而,对于这个问题,一个更有用的函数是将给定的单词转换成它的“规范”形式,这样两个anagram将具有相同的规范形式。在

其中一个功能是:

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

现在,您所要做的就是拥有一个字典,它将规范形式映射到对应的单词列表。您可以用一次遍历文本文件来填充此词典。从字典中生成所需的元组列表非常简单。在

既然这是家庭作业,我把剩下的细节留给你去弄清楚。在

相关问题 更多 >