【发布时间】:2022-11-25 21:54:23
【问题描述】:
你好,我是 python 的新手,我正在构建一个小程序,如果字符串是等值线(没有连续或不连续的重复字母的单词),则返回 false,否则返回 false。 它还忽略字母大小写。
到目前为止,我已经初始化了一个空字典,它将存储包含字母(作为键)及其频率(值)的键值对 然后我用 for 循环进行迭代,在每次迭代中,字典都会用字母及其计数进行更新。 如果它已经有了字母,那么它会将键值递增 1,否则它会保持初始化为 1。
def is_isogram(string):
dict = {}
for letter in string.lower():
#if we have the letter
if letter in dict:
dict[letter] += 1
# if we don't have the letter
else:
dict[letter] = 1
现在我要实际确定它是否是一个等值图,我遍历字典键,并写下一个条件。 但是,它一直给我完全相反的输出。
for values in dict:
if dict[values] > 1:
return False
else:
return True
输出:真
我也尝试了列表理解和 lambda,但我一直得到相同的结果,我每次都得到 True。 有谁知道为什么?
【问题讨论】:
标签: python dictionary for-loop if-statement