如何在python中计算字母对的数量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中计算字母对的数量?相关的知识,希望对你有一定的参考价值。
我不知道该怎么做,我真的很困惑。我的代码。
def count_pairs( word ):
pairs = 0
chars = set(word)
for char in chars:
pairs += word.count(char + char)
return pairs
请帮帮我!谢谢你的帮助
答案
该 for
循环只是为了遍历适当的 i
,不 径直 来进行比较。 你需要从 i
在0处,并遍历 i+1
是字符串中的最后一个索引。 在纸上计算出来。
或者,使用 i-1
和 i
; 那么你要开始 i-1
为0,这样可以减少输入的次数。
for i in range(1, len(word)):
if word[i] == word[i-1]:
...
甚至更好的是,根本不用计数器 -- 做一个等价结果的列表,然后计算出 True
值。
return sum([word[i] == word[i-1] for i in range(1, len(word))])
这是一个有点 "肮脏的把戏",使用的事实是: True
评价为1和 False
为0。
另一答案
如果你想循环处理指数而不是实际的字符,你可以这样做。
for i in range(len(word)):
# do something with word[i] and/or word[i+1] or word[i-1]
首先将字符串转换为一个集合是适得其反的,因为它去掉了排列顺序。和 的重复,使得整个问题不可能解决,原因有两个:)
另一答案
这里有一个答案。
test = "ddogccatppig"
def count_pairs(test):
counter = 0
for i in range(0,len(test)-1):
if test[i] == test[i+1]
counter+=1
return counter
print(count_pairs(test))
在这里你要遍历字符串的长度(减1,因为否则你会得到一个索引越界的异常). 如果字母与前面的字母相同,则加到一个计数器中,然后返回。
以上是关于如何在python中计算字母对的数量?的主要内容,如果未能解决你的问题,请参考以下文章
优化程序计算总和等于一个数 N (N <1,000,000) 的素数对的数量