저는 매우 초보 프로그래머로 약 3 개월 전에 시작했습니다. 나는 학교 과제물을 작성하고있다. 그것은 브리지 대역폭 문제입니다. 임 : 'IndexError : pop index out of range'라인 28에 인덱스 오류가 발생했습니다. 이 문제를 해결하는 방법을 모릅니다. 나는 또한 내 코드를 개선하기위한 다른 제안에 대해서도 열려있다.팝 인덱스가 범위를 벗어났습니다 (파이썬)
그런데 내 프로그램이 아직 끝나지 않았습니다. 인쇄 문구를 많이 써야합니다.
# 1.The fastest two cross first
# 2.The fastest crosses back
# 3.The slowest two cross next
# 4.The fastest crosses back
# 5.The remaining two cross
import csv, random
locAtime = []
locAname = []
locBtime = []
locBname = []
#import csv file
with open('gNames.csv','r', encoding="latin-1") as csvfile:
reader = csv.reader(csvfile,delimiter=',')
locAname = [''.join(x) for x in list(reader)]
locAtime = [i for i in range(len(locAname)+1)]
random.shuffle(locAtime)
timer = 0
while len(locAname) != 0:
# 1. The fastest two cross first
for i in range(2):
idx = locAtime.index(min(locAtime))
locBname.append(locAname.pop(idx)) #LINE 28 INDEX ERROR HAPPENS HERE
locBtime.append(locAtime.pop(idx))
timer += locBtime[-1]
if len(locAname) == 0:
break
# 2. The fastest crosses back
idx = locBtime.index(min(locBtime))
locAname.append(locBname.pop(idx))
locAtime.append(locBtime.pop(idx))
timer += locAtime[-1]
#3. The slowest two cross next
for i in range(2):
idx = locAtime.index(max(locAtime))
locBname.append(locAname.pop(idx))
locBtime.append(locAtime.pop(idx))
timer += locBtime[-2]
if len(locAname) == 0:
break
#4. The fastest crosses back
idx = locBtime.index(min(locBtime))
locAname.append(locBname.pop(idx))
locAtime.append(locBtime.pop(idx))
timer += locAtime[-1]
의 가능한 복제 https://stackoverflow.com/questions/12182147/pop 경우이를 추가 -index-out-of-range) – eyllanesc