Python 获取列表项开始更改的索引

Python 获取列表项开始更改的索引,python,list,Python,List,我有一个列表,其中包含连续多次重复字符串后更改的字符串数。让我用一个例子来解释:如果我有这个字符串 lst = ['A', 'A', 'A', 'A', 'F', 'F', 'F', 'F', 'D', 'G', 'G', 'G', 'W'] 我想得到一个项目列表,其中索引中的元素已开始更改(包括第一个项目列表),因此输出应如下所示: out = [0, 4, 8, 9, 10] 我如何才能以最好的方式完成这项工作?这里有一个for循环,可以帮您完成工作。它遍历列表并检查它包含的每个值是否与

我有一个列表,其中包含连续多次重复字符串后更改的字符串数。让我用一个例子来解释:如果我有这个字符串

lst = ['A', 'A', 'A', 'A', 'F', 'F', 'F', 'F', 'D', 'G', 'G', 'G', 'W']
我想得到一个项目列表,其中索引中的元素已开始更改(包括第一个项目列表),因此输出应如下所示:

out = [0, 4, 8, 9, 10]

我如何才能以最好的方式完成这项工作?

这里有一个
for
循环,可以帮您完成工作。它遍历列表并检查它包含的每个值是否与它标识的前一个值不同。如果是这样,它会将索引添加到列表中,并更新其
curr\u val

lst=['A','A','A','A','F','F','F','D','G','G','G','W']
def查找更改(lst):
当前值=“”
指数=[]
对于枚举(lst)中的i、v:
如果当前值!=五:
索引.附加(i)
当前值=v
回报指数
i=查找更改(lst)
印刷品(一)
[i表示枚举(lst)中的i,z,如果z!=lst[i-1]或i==0]
我还没有测试过这个,但我相信它应该会起作用