• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

number_of_cases 코드에 관한 질문드립니다.

18.05.02 06:30 작성 조회수 66

0

Q1)

초기코드는 이러했습니다.

def number_of_cases(list_data):

result =[]

element1=None

element2=None

sumelement=""

for i in range(len(list_data)):

element1=list_data[i]

for j in range(len(list_data)):

element2=list_data[j]

sumelement=str(element1)+str(element2)

result+=[sumelement]

result.sort()

for i in result:

if result.count(i)>1:

result.remove(i)

return result

그런데 이렇게 코드를 작성하면 중복되는 list값을 잡지를 못하더군요.

이것 저것 실험해보니

for i in result:

if result.count(i)>1:

result.remove(i)

가 문제였던 건 알겠는데, 정확히 저 코드속에서 무슨 일이 일어나는지 알아내기가 힘듭니다.

for i in range(len(result))를 하면 len(result)의 변화에 관계없이 i값은 초기에 정해진 range대로 따라가는데, for i in result를 하고 result.remove(i)를 하면 왜 처음 넣어준 result내의 값이 다 나오는 것이 아니라 len(result)를 따라가는거죠?

Q2)

i=0

while 1:

if result.count(result[i])>1:

result.remove(result[i])

i=0

else:

i+=1

if i+1==len(result):

break

return result

결국 for부분을 while 무한루프로 처리했을 때야 문제를 풀 수 있었습니다.

원래 중복처리는 어떤식으로 처리하나요?

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!