去掉前面重复的索引值,保留第一个

问题描述 投票:0回答:1
index = [461 470 479 488 489 490 491 492 520 521 522 531 540]

difference = [9 9 9 1 1 1 1 28 9 9]

(从第一个索引的亚秒索引中得到这个等等) 使用代码:


    Output = []
     
    for i in range(len(li1)):
        if li1[i] < li2[i]:
            Output.append(li2[i] - li1[i])
            
        else:
            Output.append(li1[i])
             
    print("Original list are :")
    print(li1)
    print(li2)
     
    print("\nOutput list is")`

首先,差异列表应该看起来像

[461 9 9 9 1 1 1 1 28 1 1 9 9 540]
,这是我做不到的
[9 9 9 1 1 1 1 28 1 1 9 9 ]
以上是我收到的索引值的差异,我需要为上面的代码正确,它读取索引值 如果差异为 9,则按原样读取索引值,如果为 1,则读取 1 的第一个实例(迭代 5 次)并跳过 1 的后一个实例,然后读取下一个值 28,下一个值为 1,所以它读取1(迭代 5 次)并跳过下一个值 1.

如果值为 1 则在 if 循环中移动,它应该迭代 5 次并中断,即跳过 1 的下一个值,我在 while 中使用中断值,但它中断了整个循环,因为它应该读取差异为 28 的值,下一次迭代如果它的 1 然后再次进入 if 并迭代 5 次,然后跳过下一个 1 并移动到值 9 .

for i, j in zip(range(1,len(Output)), s):
    if(Output[i]==1):
        a=0
        while True:
            a=a+1
            if(a==5):
                break
        break
    else:
        print('none')
python dataframe if-statement null break
1个回答
0
投票

不确定我是否理解这里的要求。也许是这样:

index = [461, 470, 479, 488, 489, 490, 491, 492, 520, 521, 522, 531, 540]

difference = [index[0]] + [b - a for a, b in zip(index, index[1:])] + [index[-1]]

print(difference)

输出:

[461, 9, 9, 9, 1, 1, 1, 1, 28, 1, 1, 9, 9, 540]
© www.soinside.com 2019 - 2024. All rights reserved.