gpt4 book ai didi

python - 跟踪字符串中字符迭代的列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:49 26 4
gpt4 key购买 nike

我正在编写一个编码器,我想保留一个列表来跟踪字符串中字符的迭代。

例如:

Input = aaabccccaa
Output = [3, 1, 4, 2]

这是我的:

def numberCheck(string, numberList):
teller = 1
for i in range(len(string)):
for j in range(i + 1,len(string)):
if string[i] == string[j]:
teller += 1
else:
break
numberList.append(teller)
teller = 1
return numberList

但这给了我输出 [3, 2, 1, 1, 4, 3, 2, 1, 2, 1]

我知道为什么会这样输出,但我不知道如何修复代码才能得到我想要的输出。

提前致谢

最佳答案

您可以使用内置的 itertools对于此任务(特别是 groupby ),而不是您拥有的长函数。

>>> from itertools import groupby
>>> Input = "aaabccccaa"
>>> [len(list(group)) for key, group in groupby(Input)]
[3, 1, 4, 2]

如果你想保留字母、它的计数和它在字符串中出现的顺序:

>>> [{k: len(list(group))} for key, group in groupby(Input)]
[{'a': 3}, {'b': 1}, {'c': 4}, {'a': 2}]

关于python - 跟踪字符串中字符迭代的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949167/

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