【发布时间】:2017-10-03 23:03:37
【问题描述】:
#Checking if a word is an isogram
from collections import Counter
def count_isogram(words, index):
a=Counter(words[int(index)])
d=words[int(index)]
for (b,c) in a.items():
if c >= 2:
print(b,c)
return(d+' is not an isogram')
else:
print(b,c)
return(d+' is an isogram')
嗨,这是我上面的代码。我正在尝试制作一个非常基本的等值线检查器(等值线是一个没有任何重复字母(狗、猫、鸟等)的单词。我的代码大部分都在工作,但是当我到达我的if 语句,它检查每个单词的第一个字母以确定要使用哪个返回短语。如何让我的代码检查每个字母?例如下面的图片链接演示了这个问题(我没有足够高的代表来发布图片):
例子:
您可以看到第一个场景中的单词:'silly'(索引为 1)正在通过函数运行,但由于只有 1 个 S,它返回该单词是等值图,而实际上不是。当运行单词'dude'(索引为1)时,因为第一个字母在单词中出现不止一次,所以它运行正确的返回,但这只是因为检查的第一个字母是重复的。
我尝试过运行 c.all()、c.any() 和其他一些运算符,但它不起作用,因为 c 是一个只有 1 个值的整数。
我可以更改/添加什么以使代码在运行返回之前检查所有可能的字母?
【问题讨论】:
标签: python loops for-loop if-statement repeat