首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建一个函数来查找字典中的所有palingrams (包括i和a)?

如何创建一个函数来查找字典中的所有palingrams (包括i和a)?
EN

Stack Overflow用户
提问于 2020-10-20 22:46:26
回答 1查看 231关注 0票数 0

我现在遇到了一个问题,我必须在列表中找到所有的palingrams。我写了一段代码,但是效率很低,花了大约3个半小时才完成。我需要找到一些更有时效性的东西。

现在,我被这段代码卡住了:

代码语言:javascript
复制
import sys

def load(file):
    """Open a text file & turn contents into a list of lowercase strings."""
    try:
        with open(file) as in_file:
            loaded_txt = in_file.read().strip().split('\n')
            loaded_txt = [x.lower() for x in loaded_txt]
            return loaded_txt
    except IOError as e:
        print("{}\nError opening {}. Terminating program.".format(e, file),
              file=sys.stderr)
        sys.exit(1)

def find_palingrams():
    pali_list = []
    for word in word_list:
        if end > 1:
            for i in range(end):
                if word[i:] == rev_word[:end-i] and rev_word[end-i:] in word_list:
                    pali_list.append((word, rev_word[end-i:]))
                if word[i:] == rev_word[end-i:] and rev_word[:end-i] in word_list:
                    pali_list.append((rev_word[end-i:], word))
    return sorted(pali_list)

我对此有问题,因为它不打印我正在寻找的特定输出。它正在打印单词,但它排除了"aa aa“、"a ba”、"a baba“等大小写。有一些我看不到的东西导致单个字母没有完全包含在内。我知道end > 1,然而,即使试图改变,我也会遇到困惑。

有没有人能说点什么?

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 23:05:32

我猜你指的是回文单词。检查单词是否为回文的一种更简单的方法:

代码语言:javascript
复制
>>> word = "level"
>>> word == word[::-1]
True

你可能想使用更简洁的方式,然后根据测试结果添加单词:

代码语言:javascript
复制
if word == word[::-1]:
    # add it to the list
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64447615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档