gpt4 book ai didi

python - 有没有一种简单的方法可以获取单词中重复字符的数量?

转载 作者:太空狗 更新时间:2023-10-29 19:33:30 25 4
gpt4 key购买 nike

我想知道有多少字符在一个单词中重复。重复必须是连续的。

例如,输入"loooooveee" 的方法应该返回 6(4 次 'o',2 次 'e')。

我正在尝试实现字符串级别的函数,我可以这样做,但是,有没有一种简单的方法可以做到这一点?正则表达式,还是其他一些东西?

最佳答案

原题:重复顺序无关紧要

您可以用总字母数减去唯一字母数。 set应用于字符串将返回唯一的字母集合。

x = "loooooveee"
res = len(x) - len(set(x)) # 6

或者您可以使用 collections.Counter ,从每个值中减去 1,然后 sum:

from collections import Counter

c = Counter("loooooveee")

res = sum(i-1 for i in c.values()) # 6

新问题:repetitions must be sequential

您可以使用 itertools.groupby对连续的相同字符进行分组:

from itertools import groupby

g = groupby("aooooaooaoo")
res = sum(sum(1 for _ in j) - 1 for i, j in g) # 5

要避免嵌套的 sum 调用,您可以使用 itertools.islice :

from itertools import groupby, islice

g = groupby("aooooaooaoo")
res = sum(1 for _, j in g for _ in islice(j, 1, None)) # 5

关于python - 有没有一种简单的方法可以获取单词中重复字符的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53206677/

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