求助,刚学python,这个一直显示数组越界怎么解决IndexError: list index out of range

#随机选取一个真实用户
userIndex = random.randint(0,len(allUserLocation))
realUserLocation = allUserLocation[userIndex]
print(len(allUserLocation))
del allUserLocation[userIndex]
print(len(allUserLocation))

Traceback (most recent call last):
File "C:/Users/Zhang Liqiang/Desktop/lbs/lbs_algorithm/lbs_algorithm/test_algorithm/showAllUser_geohash.py", line 17, in
realUserLocation = allUserLocation[userIndex]
IndexError: list index out of range

2个回答

改成


userIndex = random.randint(0,len(allUserLocation)-1)

比如你有4个user , 下标范围为 0-3
random.randint(0,4) 有可能取到 4

而 4 下标是不存在的。

因为例如random.randint(0,3)生成的随机数为0,1,2,3,当len(allUserLocation)恰好被生成时,allUserLocation[userIndex]会越界,数组的下标是从0开始计数的

weixin_45101959
weixin_45101959 回复qq_43429543: userIndex = random.randint(0,len(allUserLocation)-1)
6 个月之前 回复
qq_43429543
qq_43429543 那我应该怎么修改
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐