TIL[44]. Python_ For Loops

jake.log·2020년 8월 23일
0

Python

목록 보기
26/39

26.For Loops

For 구문은 list (혹은 다른 자료 구조)의 요소를 한번에 하나씩 가지고 원하는 로직을 실행할 수 있게 해주는 역할을 한다.

For 구문을 사용하면 이전에 if 문으로 했던 과제를 다음과 같이 구현할 수 있다.

my_list     = [int(s) for s in input().split()]
odd_numbers = [ ]
##먼저 홀수값들을 골라내서 리스트를 만들고
for element in my_list:
    if (element % 2) == 1:
        odd_numbers.append(element)
##홀수값들을 하나 하나 기존 리스트에서 지워준다
for odd_number in odd_numbers:
    my_list.remove(odd_number)

print(my_list)

1.for 구문의 문법

for element in list:
    do_something_with_element

List의 요소를 한번에 한개씩 가지고 for 구문 안에 있는 코드를 실행한다.
For 문은 list 뿐만이 아니라 tuple, set 등 다른 자료구조와도 사용할 수 있다.

2.Break

앞서 보았듯이 for 구문에서는 리스트가 가지고 있는 요소의 수 만큼 for 구문에 속해있는 코드를 실행한다.

이걸 iteration 이라고 합니다.

만일 리스트가 5개의 요소를 가지고 있으면 5 iterations 이다.
즉 5번 반복한다는 뜻이다.

굳이 끝까지 for 구문을 진행할 필요 없이 중간에서 멈추고 싶을때는 break 문을 사용한다.
For 구문에서 break 문이 실행되면 다음 interation으로 넘어가지 않고 for 구문에서 빠져 나오게 된다.

3.Continue

만일 break처럼 for 구문에서 완전히 빠져 나오고 싶지는 않지만 다음 요소,
즉 다음 interation으로 넘어가고 싶을때는 continue 문을 사용한다.

4.Nested For Loops

if 구문과 마찬가지로 for 구문도 nesting이 가능합니다.

numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]

for num1 in numbers1:
    for num2 in numbers2:
        print(f"{num1} * {num2} == {num1 * num2}")

Assignment
Input 으로 주어진 리스트에서 오직 한번만 나타나는 값 (unique value)을 가지고 있는 요소는 출력해주세요.

예를 들어, 다음과 같은 리스트가 주어졌다면:

[1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]

다음과 같이 출력되어야 합니다.

4
5

My solution

my_list = [s for s in input().split()]
unique_list = []
#my_list에 입력된 전체 수를 돌려주고 그 중에 중복된 값은 제외 

for i in my_list: 
    if i not in unique_list:
        unique_list.append(i)
    elif i in unique_list:
        unique_list.remove(i)

print(unique_list)

Model solution

my_list       = [s for s in input().split()]
current_index = 0

for element in my_list:
  is_unique = True
  list_without_current_element = my_list[0:current_index] + my_list[current_index+1:]
 
  for element2 in list_without_current_element:
    if element == element2:
      is_unique = False
      break
   
  if is_unique:
    print(element)
   
  current_index += 1 
profile
꾸준히!

0개의 댓글