gpt4 book ai didi

python - 无法在 python 列表中追加元素

转载 作者:行者123 更新时间:2023-12-01 08:46:02 24 4
gpt4 key购买 nike

我正在编写一个程序,使用 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)

最佳答案

您的代码存在一些问题:

  1. 不要在内置变量之后命名变量(即使作为示例)。使用ddict_而不是dict 。同上max .
  2. 您的max (固定为 -1 )将始终<= dict[i] ,因为计数始终为 >= 1 .
  3. 您定义lst作为列表,然后为其分配一个字符串。

更简单,使用collections.Counter ,计算最大值,然后使用 max具有自定义功能:

from collections import Counter

inputString = input()
c = Counter(inputString)
print(c)

maxval = max(c.values())

def max_logic(x):
cond1 = x[1] % 2
cond2 = x[1] - maxval
return cond1, cond2

key, val = max(c.items(), key=max_logic)

运行示例:

print(key, val)

thisisateststring
Counter({'t': 4, 's': 4, 'i': 3, 'h': 1, 'a': 1, 'e': 1, 'r': 1, 'n': 1, 'g': 1})
i 3

该解决方案假定字符串中确实存在有效的奇数。如果没有,并且您需要应用特殊处理,则需要添加额外的逻辑。我把它留作练习。

关于python - 无法在 python 列表中追加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53299632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com