python - 有什么办法可以循环 az 而不是编写多个 for 循环语句?
问题描述
所以我试图对给定的列表进行字符计数。
a = ["farshad", "ghassemi?d", "madam", "?radar?", "duration", "con?tained"]
我的预期输出是:
farshad 包含 2 个
而这继续......
我的代码是:
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 循环中完成这一切,例如 AZ ....
感谢您的帮助: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
包含每个小写字母,所以我使用了它。然后,我们得到 i 中的计数word.lower()
。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)
推荐阅读
- android - 在 Android 中使用 .cer(公钥)验证/验证的 XML 签名
- kubernetes - 如何在 kuebernetes 中跨 presto 集群分发文件
- python - 如果另一列的值大于其他两列的值,则显示一列的值
- javascript - 修改后的 javascript 代码无法保存
- java - 在本机查询中在运行时(Hibernate/JPA)临时将 FetchType.LAZY 更改为 FetchType.EAGER
- javascript - 发件人如何解密自己的加密信息
- python - ImportError:无法从“tensorflow.python.keras.engine”导入名称“network”
- html - 使用 Sphinx 中的图像作为可点击链接
- python - Xarray 每年重新采样一次
- javascript - 添加到主屏幕到图像