python - 有什么方法可以循环遍历 a-z 而不是编写多个 for 循环语句?

标签 python python-3.x for-loop

所以我试图对给定列表进行字符计数。

a = ["farshad", "ghassemi?d", "女士", ​​"?雷达?", "持续时间", "包含"]

我的预期输出是:

farshad contains 2 a

这样的情况还在继续......

我的代码是:

def charCount():
    a = ["farshad", "ghassemi?d", "madam", "?radar?", "duration", "con?tained"]

    for word in a:
        for letter in word:
            x = word.count("a")
        print(word, "contains", x, "a")

    for word in a:
        for letter in word:
            x = word.count("d")
        print(word, "contains", x, "d")

charCount()

我试图在一个 for 循环中完成这一切,例如 A-Z ....

感谢您的帮助:D

最佳答案

您可以通过 2 个 for 循环来完成此操作。 (我假设这个问题意味着 1 个单独的 for 循环并允许嵌套 for 循环)这就是我的做法:

import string

def charCount():
    a = ["farshad", "ghassemi?d", "madam", "?radar?", "duration", "con?tained"]

    for word in a:
        for i in string.ascii_lowercase:
            x = word.lower().count(i)
            print(word, "contains", x, i)

charCount()

您所需要做的就是循环遍历每个字符。 string.ascii_lowercase 包含每个小写字母,所以我使用了它。然后,我们在 word.lower() 中获取 i 的计数。 word.lower() 将单词转换为小写,使其也计入大写。

如果您想进一步缩短它,您可以像这样更改内部 for 循环:

def charCount():
    a = ["farshad", "ghassemi?d", "madam", "?radar?", "duration", "con?tained"]

    for word in a:
        for i in string.ascii_lowercase: print(word, "contains", word.lower().count(i), i)

关于python - 有什么方法可以循环遍历 a-z 而不是编写多个 for 循环语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66955608/

相关文章:

python - 为另一列中的每个值找到一列中的最低值 - Pandas

python - Django:自定义主键的自动实例化?

python - 在普通函数中调用异步函数

python-3.x - 如何排除或删除Python中的特定部分

python - 在python3中优雅地退出多进程

用于计算偏差矩阵的 R 函数

java - 在 Vb.net 中使用 If-Statement 作为 For-Loop 的测试条件

python - 相机标定Opencv-Python

python - 这是一个有效的循环吗?

python - 删除字符串中连续字符重复数据的最快方法 - Python