无法在python列表中附加元素

我正在编写一个程序,以使用 python 在给定的字符串中查找出现最多奇数次的字符。但是,如果两个或多个字符出现最多奇数次,我无法将字符附加到列表中。


使用的输入:AAAbbccc


我得到的错误:


回溯(最近一次调用):文件“./prog.py”,第 18 行,在 AttributeError 中:'str' 对象没有属性 'append'


inputString = input()


dict = {}


for i in inputString:

  if i in dict:

    dict[i] += 1

  else:

    dict[i] = 1



print(dict)

max = -1

lst = []

for i in dict:

  if(dict[i]%2!=0 and max<=dict[i]):

    if(max == dict[i]):

      lst.append(i)

    else:

      max = dict[i]

      lst = i


print(lst)


30秒到达战场
浏览 157回答 1
1回答

Cats萌萌

您的代码存在一些问题:不要在内置函数之后命名变量(即使作为示例)。使用d或dict_代替dict。同上max。您的max(固定于-1)将始终为<= dict[i],因为计数始终为>= 1。您定义lst为一个列表,然后为其分配一个字符串。更简单,使用collections.Counter,计算最大值,然后max与自定义函数一起使用:from collections import CounterinputString = input()c = Counter(inputString)print(c)maxval = max(c.values())def max_logic(x):&nbsp; &nbsp; cond1 = x[1] % 2&nbsp; &nbsp; cond2 = x[1] - maxval&nbsp; &nbsp; return cond1, cond2key, val = max(c.items(), key=max_logic)示例运行:print(key, val)thisisateststringCounter({'t': 4, 's': 4, 'i': 3, 'h': 1, 'a': 1, 'e': 1, 'r': 1, 'n': 1, 'g': 1})i 3该解决方案假定您的字符串中确实存在有效的奇数计数。如果不是,并且您需要应用特殊处理,则需要添加额外的逻辑。我把它留作练习。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python