파이썬 레플릿 43. For 반복문 문제

개발자 강세영·2022년 5월 3일
0

TIL

목록 보기
14/70

문제:
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)

0개의 댓글