능지처참 개초보가 질문있음
a = [1,2,2,2,3,4,5]
b = [2,3,4,5,6,6,6]
sum_ab = 0
여기서 a[i]랑 b[j]가 같을 때, sum_ab +=1을 처리하고 a[i], b[j]를 제거하고싶어
예를들어
a[1] == b[0] -> sum_ab = sum_ab + 1
그다음에 a[1]에 대한 for문을 강제로 끝낸 다음
a[1]과 b[0]을 제거하고 a[2]부터 다시 시작하고싶음
근데 이 문제가 해결이 안되는데, 어떤구조로 써야함?
당연히 안되는코드
for i in range(len(a)):
for j in range(len(b)):
if a[i]==b[j]:
sum_ab +=1
del a[i]
del b[j]
break
delete 하면 i가 새롭게 가리키는 원소가 뭐임?
1,2,2,2,3,4,5 돌아야하는데 중간에 del을 시켜버리니깐 5를 못읽고 에러발생하는거긴한데 이걸 2중for문 말고 다른방법으로 해결해야할거같은데 생각이안남
제거하고나면 a[2]였던놈이 a[1]이 되지 않겠노 - dc Cpp
그래서 만약에 제거되면 i = i-1했는데 for문은 좆까고 0,1,2,3,4,5 순번대로하더라
따로 각각의 boolean 변수를 만들어서 거기서 delete 판정을 임시로 한뒤에 모든 for문 다 돌고나서 delete 아닌것들만 list에 append 하셈
오 ㄳ