【发布时间】:2017-06-07 18:21:44
【问题描述】:
初学者问题:我正在尝试评估一行中的两个值是否匹配。
a = ['sl','sl','cr','cl']
这是我当前的代码:
while (j+1) < len(a):
if a[j] == a[j+1]:
num = num + 1
else:
num = num
但是,当我这样做时,它不会计算列表中的第一个值 - 这是由于 (j+1),但是,如果我删除它,则会收到错误消息,告诉我我的索引超出范围 - 任何建议将不胜感激。
【问题讨论】:
-
num = len(a) - len(set(a))?请注意,else可以删除,并且您的方法仅检查直接邻居。 -
从0开始,比最后一个索引少1。 @MosesKoledoye 你在那里缺少另一个镜头吗? :)
-
如果一个值出现 3 次怎么办?你想增加计数器一次还是两次?
-
这也不能是你当前的代码,因为你从来没有真正增加 j。
-
a = ['sl','sl','sl','cr','cl', 'bob']的结果会是什么?
标签: python list while-loop