Why does this ID generating code make a KeyError: -1

Why does this ID generating code make a KeyError: -1

我这部分代码中的一个问题导致 KeyError: -1

你们知道这可能是什么原因吗?

for i in range(len(B130317)):
    if B130317['LON'][i] != B130317['LON'][i-1]:
        currentID += 1
    newID.append(currentID)

基于@Badgy 的评论:

for i in range(1,len(B130317)):
    if B130317['LON'][i] != B130317['LON'][i-1]:
        currentID += 1
    newID.append(currentID)

或:

for i in range(len(B130317)-1):
    if B130317['LON'][i] != B130317['LON'][i+1]:
        currentID += 1
    newID.append(currentID)

如果B130317['LON']是一个空列表,B130317['LON'][i-1] for i=0将抛出KeyError: -1异常。 我不知道您的业务逻辑是什么,但也许您应该考虑将循环更改为:

for i in range(len(B130317['LON'])):
# your logic