Почему этот код, генерирующий идентификатор, делает KeyError: -1 - PullRequest
0 голосов
/ 05 апреля 2020

Проблема в этой части моего кода вызывает KeyError: -1

Кто-нибудь из вас знает, что может вызвать это?

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

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Если B130317['LON'] - пустой список, B130317['LON'][i-1] для i=0 выдаст исключение KeyError: -1. Я не знаю, какова ваша бизнес-логика c, но, возможно, вам следует подумать об изменении l oop на:

for i in range(len(B130317['LON'])):
# your logic
1 голос
/ 05 апреля 2020

на основе комментариев @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)
...