我有两个清单:
A = [476, 1440, 3060, 3060, 500,500]
B = [0,4,10,15]
注意:列表B的长度将始终等于列表A中的个别加配对值的数量。更新列表B将匹配列表A的长度。
我想检查列表A中的重复值,并使用其索引位置复制列表B中的相应值。例如,列表A有A [2] = A [3]和A [4] = A [5](3060和500),所以基于此我想复制B [2]和B [3]并分别在B [3]和B [5]中加上这些。所以更新的列表B看起来像:
B = [0,4,10,10,15,15]
我尝试了以下来获取重复值的起始索引:
C = [x==A[i-1] for i,x in enumerate(A)][1:]
for idx,l in enumerate(C):
if l == True:
print "idx"
但是要做好将这一变化纳入清单B中。任何建议都会很有意义。
答案 0 :(得分:2)
这是一个天真的实现(不确定我的要求是否正确):
>>> from itertools import groupby
>>> A = [476, 1440, 3060, 3060, 500, 500]
>>> B = [0, 4, 10, 15]
>>> Result = []
>>> for i, g in enumerate(groupby(A)):
Result += [B[i]] * len(list(g[1]))
>>> Result
[0, 4, 10, 10, 15, 15]