-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
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