等值线是一个没有重复字母、连续字母或连续字母的单词

我尽我所能做到以下几点.但目标是试图说明"驼鹿"不是一个等值线.上面说不用担心shell .我不知道如何区分"o"和"o".

    char_list = []
    for char in string:
        if char.isalpha():
            if char.islower():
                if char in char_list:
                    return False
                else:
                    char_list.append(char)
    return True

我的脚本返回true,因为它对"o"和"o"的理解不同.我怎样才能让它不区分?我试着加.islower(),但似乎不起作用.

推荐答案

在判断字符串是否包含重复字母之前,可以将其大写:

def is_isogram(string):
    char_list = []
    for char in string.upper():
        if char in char_list:
            return False
        char_list.append(char)
    return True

您可以通过使用集合而不是列表来加快这一过程:

def is_isogram(string):
    char_list = set()
    for char in string.upper():
        if char in char_list:
            return False
        char_list.add(char)
    return True

通过使用len()函数,您可以使其更加简洁:

def is_isogram(string):
    return len(string) == len(set(string.upper()))

Python相关问答推荐

在Python中使用yaml渲染(多行字符串)

基于Scipy插值法的三次样条系数

使用Openpyxl从Excel中的折线图更改图表样式

如何求相邻对序列中元素 Select 的最小代价

如何训练每一个pandaprame行的线性回归并生成斜率

极点用特定值替换前n行

在MongoDB文档中仅返回数组字段

排除NRRD文件中的多切片卷加载问题

为什么任何一个HTML页面在保存到文件后都会变大6个字节?

SQL模型中包含日期时间的TypeError

日志(log)轴上的自定义刻度出现意外的次要刻度标记行为

Networkx中K-Shell最核心的 node

捕获脚本和退出代码的多行输出

安装PyTorch时出现CondaVerificationError

使用Mysql Connector通过Python创建Mysql Storec过程

从来自另一个Python脚本的消息中获取FlaskServer中的错误字段

如何从polars中的列表中 Select 所有列

future 对大Pandas 群居的警告

如何在我的sveltekit应用程序中运行带有虚拟.venv的python脚本?

Discord.py速率限制