使用for循环统计列表中连续H的相邻出现次数的问题
代码问题排查
你的代码存在以下几处问题:
- 列表定义语法错误,缺少赋值运算符,且使用Python内置关键字
list作为变量名会覆盖内置方法,存在隐性隐患 - 匹配条件逻辑错误,列表元素为字符串
'H',你写的== ['H']是和单元素列表做比较,判断结果永远为False,自然无法完成计数 - 循环逻辑存在两处错误:一是循环过程中变量
n始终为0没有更新,永远只对比前两个元素;二是遍历到最后一个元素时访问n+1会超出列表索引范围,触发报错
修正后代码
# 自定义列表变量名,避免和内置关键字重名 seq = ['H', 'H', 'H', 'T', 'H'] j = 0 # 仅遍历到倒数第二个元素,避免索引越界 for n in range(len(seq) - 1): if seq[n] == 'H' and seq[n+1] == 'H': j = j + 1 print('it was this amount of times ' + str(j))
测试输入序列['H','H','H']时,输出结果为2,符合预期要求。
内容的提问来源于stack exchange,提问作者Logan Hepfner
相关产品推荐
相关产品推荐

