我想实现一个获取字母变化索引的算法。我有下面的列表,在这里我想找到每个字母更改的开头并放置除第一个之外的结果列表。因为,对于第一个,我们应该得到它出现的最后一个索引。让我给你举个例子:
letters=['A','A','A','A','A','A','A','A','A','A','A','A','B','C','C','X','D','X','B','B','A','A','A','A']
过渡:
'A','A','A','A','A','A','A','A','A','A','A','A'-->'B'-->'C','C'-->'X'-->'D'-->'X'-->'B','B'-->'A','A','A','A'
这里,A 字母写完后,B 开始,我们应该把最后一个 A 的索引和第一个 B 的索引等等,但我们不应该将 X 字母包含在结果列表中。
期望的结果:
[(11, 'A'), (12, 'B'), (13, 'C'), (16, 'D'), (18, 'B'), (20, 'A')]
到目前为止,我已经完成了这段代码,它会找到除 (11, 'A') 之外的其他项目。如何修改我的代码以获得所需的结果?
for i in range(len(letters)):
if letters[i]!='X' and letters[i]!=letters[i-1]:
result.append((i,(letters[i])))
我的结果:
[(12, 'B'), (13, 'C'), (16, 'D'), (18, 'B'), (20, 'A')] ---> missing (11, 'A').