python - 为什么是 str.count ('' ) ≠ (from str.count ('A' ) + str.count ('B' ) + ... + str.count ('Z' ))

标签 python string count equals false-positive

如果字符串(短语)中只有元音,它(对我而言)说True;否则说 False。我不明白为什么它总是返回 False,因为 (x >= x) 总是返回 True。 我感谢任何人检查此查询的解决方案。

(str) -> bool

def valid_letter_sequence(abc):

    valid_letters = abc.count('A') + abc.count('E') + abc.count('I') + abc.count('O') + abc.count('U')
    counted_letters = abc.count('')
    if valid_letters >= counted_letters:
        return True
    else:
        return False

最佳答案

观察:

>>> 'abc'.count('')
4

将空字符串传递给 count 会得到比字符串长度多一个的字符串(因为它会在两端以及每对字符之间找到空字符串)。为什么不直接使用 len(abc)

更一般地说,有更好的方法来完成您正在做的事情。像这样:

def valid_letter_sequence(abc):
    return not (set(abc) - set('AEIOU'))

关于python - 为什么是 str.count ('' ) ≠ (from str.count ('A' ) + str.count ('B' ) + ... + str.count ('Z' )),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908319/

相关文章:

python - pandas df 中两列之间的累积计数

python - Pandas 基于 groupby 多列的滚动平均值

python - 如何从日期时间字符串中删除额外的时区添加信息

c - 返回字符串的函数不工作 - 段错误

java - String 类如何覆盖 + 运算符?

SQL 查询多张表的 Sum 和 Count

计数不同时的 MySQL 案例

python - 如何强制从内存中释放 Django 模型

python - 基于文本的角色扮演游戏 : How to apply cool downs to user input

javascript检查字符串开头的特殊字符