如何创建一个函数,计算每个元素等于右边2个元素的次数

时间:2011-10-13 01:54:09

标签: python

我知道我需要使用列表理解,但对于我的生活,我无法弄清楚用什么方法来表示这一点。这种运行权的一个例子是“晚上”输出为2,一次                          对于'e'和一次'n'

3 个答案:

答案 0 :(得分:2)

列表理解给出了右边两个字母相同的字母。我们只需获取结果列表的长度:

s = "evening"
ans = len([x for x in xrange(len(s)-2) if s[x] == s[x+2]])
print ans

答案 1 :(得分:1)

s='evening'
print len([x for x,y in zip(s, s[2:]) if x==y])

输出:

2

答案 2 :(得分:0)

我很想看到比我更专业的人把它变成lc,但我的基本解决方案是

zz='evening'
for numb, letter in enumerate(zz):
if numb+2==len(zz):
    break
if letter==zz[numb+2]:
    count+=1

在看到迈克的回答并考虑如果输入是一个列表

之后如何
foo = ['e', 'v', 'e', 'n', 'i', 'n', 'g']
new=[item for numb, item in enumerate(foo[0:-2]) if item==foo[numb+2]]
answer=len(new)
愚蠢的我,我也可以使用字符串,我认为这仍然更清洁

testString='evening'
new=[letter for numb, letter in enumerate(testString[0:-2]) if letter==testString[numb+2]]
ans=len(new)