假设我有清单:
list = [a,a,b,b,b]
我在名单上打转。当前一个字母与当前字母相同时,变量“count”增加1。以下只是代码的一部分:
for item in list:
if item == previous:
count +=1
return count
上面的示例返回3,1表示repeat a,2表示bs。我能用什么使它只增加一次,每次共2?我试着使用一个变量“found”,它返回True或False,这取决于以前是否看到过字母,但这当然不适用于像[a,a,a,c,a,a,a,a]这样的情况,它返回1表示“a”s的第一次运行,而不是2,这是我想要的。
编辑:我可能会让这件事变得比需要的更难。我只想在任何时候,一个字符串被连续地重复以使一个计数增加一。[a,b,b,c,a,a,a,c,c,]应该返回3。[a,a,a,a,a,a,a,a]应该返回1。
胡乱猜测:由于您希望
a,a,b,b,b
是2而不是3,并且您还希望a,a,a,c,a,a,a
给出2,我认为您正在尝试计算长度等于2的元素的不同连续组。如果是,您可以使用itertools.groupby
:因此
但这只是猜测。这是我唯一能想到的与你给出的两个数据点相匹配的东西,至少假设我正在正确地解释“a”的第一次运行是“1”,而不是“2”。这就不清楚你是希望总数为2,还是希望第一轮“a”的贡献为2。
更新
我希望这对你有用。
再见
相关问题 更多 >
编程相关推荐