如何生成一个函数,计算每个元素在其右边等于2个元素的次数

2024-04-19 06:08:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道我需要使用一个列表理解,但对于我的生活,我不能找出什么是正确的方式来表示这一点。这种运行方式的一个例子是“晚间”,输出为2,once 为“e”和一次为“n”


Tags: 列表方式例子once
3条回答
s='evening'
print len([x for x,y in zip(s, s[2:]) if x==y])

输出:

2

列表理解将具有相同字母的字母放在右边两处。我们只需计算结果列表的长度:

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

我很想看到比我更专业的人把这个变成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)

相关问题 更多 >