문제:
my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
와 같은 배열에서 한번만 나타나는 값을 출력해야 한다. 이 경우 4 5 가 출력되야함
해답
1.count()를 사용하는게 제일 간단하다
for i in my_list:
if my_list.count(i) == 1:
print(i)
2.카운트 변수를 만들고 이중반복문으로 해결
my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
count = 0
for i in range(len(my_list)):
for j in range(len(my_list)):
if i != j and my_list[i] == my_list[j]:
count += 1 # 이중반복문으로 자기를 제외한 다른 요소들 중에 중복되는 요소가 있으면 카운트를 올림
if count == 0: # 카운트가 0이면 고유한 값이므로 그 값을 프린트
print(my_list[i])
else: # 카운트가 올라간 경우 중복되는 요소가 있으므로 카운트 변수를 0으로 초기화
count = 0
3.리스트 슬라이싱으로 해결
current_index = 0
for num in my_list:
list_without_current_num = my_list[0:current_index] + my_list[current_index + 1:]
if not num in list_without_current_num:
print(num)
current_index += 1
for num in my_list:
index = my_list.index(num)
list_without_current_num = my_list[0:index] + my_list[index + 1:]
if not num in list_without_current_num:
print(num)