본문 바로가기
공부 목록/IT & 프로그래밍

파이썬의 제어문인 'for'문의 다양한 사용법

by 독학박사 2023. 4. 25.

목차


    프로그램을 공부해 보면 가장 많이 사용하는 제어 문구가 있습니다. 바로 'for'구문인데요, 일반적으로 다른 프로그래밍 언어와 파이썬에서의 사용법은 비슷하지만 파이썬만의 독특한 기능들이 더 있는 것 같습니다. 오늘은 프로그램의 기본 제어문인 for문에 대해 알아보고, 다양한 사용법도 같이 확인해 보도록 하겠습니다.

     

     

    파이썬의 for문은 어떻게 사용하나?
    파이썬의 for문은 어떻게 사용하나?

     

    1. For 문이란?

     파이썬에서 for문은 반복(iteration)을 통해 동일한 코드를 여러 번 실행하고자 할 때 사용됩니다. for문은 시퀀스(sequence) 데이터 타입(예: 리스트, 튜플, 문자열)의 각 원소(element)를 순차적인 입력값으로 코드 블록(for 문 안의 코드)을 반복적으로 실행하는 제어문입니다.

     

     for문은 시퀀스 데이터 타입의 각 원소에 차례대로 접근하여 처리할 수 있습니다. 시퀀스 데이터로는 리스트와 같은 타입들이 있는데, 리스트 내 각각의 값들을 순차적으로 처리합니다. 또한, 문자열(string)을 시퀀스 데이터로 사용할 경우 각 문자를 순차적으로 처리하게 됩니다.

     

    리스트 : [1, 2, 3, 4]
    문자열 : 'abcd'

     

     for문을 사용하는 대표적인 이유로는 동일한 코드를 여러 번 사용할 때입니다. 하나의 로직에 입력값을 다르게 하여 반복적으로 결과값을 얻어야 하는 경우입니다.

     

     for문은 반복 횟수를 미리 지정하여 특정 작업을 정확히 원하는 횟수만큼 반복할 수 있습니다. 예를 들어, 10번 반복하면서 특정 작업을 수행하고자 할 때 사용됩니다.

     

     for문은 파이썬에서 자주 사용되는 제어문 중 하나로, 코드의 간결성과 가독성을 높여주는 동시에, 반복 작업을 효율적으로 수행할 수 있도록 도와줍니다.

     

     

     2. 다양한 for문의 사용법

    파이썬에서 for문은 다양한 방식으로 사용할 수 있습니다. 일반적으로는 시퀀스 데이터 타입의 각 원소를 순회하면서 처리하는 방식으로 사용되지만, 람다(lambda) 함수와 조합하여 더 간결한 형태로 사용할 수도 있습니다. 

     

    일반적인 for문 사용:

    sequence = [1, 2, 3, 4]
    for item in sequence: # 처리할 작업
    	print(item)
        
    #출력결과
    #1
    #2
    #3
    #4

     

     일반적인 for문은 시퀀스(sequence) 데이터 타입의 각 원소를 순차적으로 변수 item에 원소를 할당하고, 해당 원소에 대해 처리할 작업을 수행합니다. 예를 들어, 리스트의 각 원소를 출력하거나, 튜플의 각 원소에 대해 연산을 수행할 수 있습니다. 위의 코드에서 sequence가 list( = [1, 2, 3, 4]) 타입일 경우 해당 프로그램은 1, 2, 3, 4를 각각 출력해 줄 겁니다.

     

    enumerate() 함수와 함께 사용:

    sequence = ['a', 'b', 'c', 'd']
    for index, item in enumerate(sequence): # 처리할 작업
    	print(index, item)
        
    #출력결과
    #0 a
    #1 b
    #2 c
    #3 d

     

     enumerate() 함수는 시퀀스 데이터 타입의 원소에 대해 인덱스와 원소를 함께 반환해 주는 함수입니다. 위의 예시에서 index 변수에는 인덱스(0, 1, 2, 3)가 할당되고, item 변수에는 해당 인덱스의 원소(a, b, c, d)가 할당됩니다. 이를 통해 인덱스와 원소를 동시에 사용하여 처리할 작업을 수행할 수 있습니다.

     

    딕셔너리의 items() 메서드와 함께 사용:

    dictionary = {'a':12, 'b':34}
    for key, value in dictionary.items(): # 처리할 작업
    	print(key, value)
    
    #출력결과
    #a 12
    #b 34

     

     딕셔너리의 items() 메서드는 딕셔너리의 키-값 쌍 값을 함께 반환해 주는 메서드입니다. 위의 예시에서 key 변수에는 키('a', 'b')가 할당되고, value 변수에는 해당 키의 값(12, 34)이 할당됩니다. 이를 통해 키와 값을 동시에 사용하여 처리할 작업을 수행할 수 있습니다.

     

    람다 함수와 함께 사용:

    sequence = [1, 2, 3, 4]
    result = list(map(lambda x : x * 2, sequence))
    print(result)
    
    #출력결과
    #[2, 4, 6, 8]

     

     람다 함수는 간단한 익명 함수로, lambda 키워드를 사용하여 정의됩니다. 람다 함수는 한 줄로 표현되는 간결한 함수로, for문과 함께 주로 사용되는 경우가 많습니다. 위의 예시에서는 map() 함수와 함께 사용되었는데, map() 함수는 시퀀스 데이터 타입의 각 원소에 대해 람다 함수를 적용한 결과를 반환합니다. 이를 통해 for문 없이도 간단하게 시퀀스 데이터 타입의 원소를 처리할 수 있습니다. map() 함수는 결과값을 method로 반환하기 때문에 list()를 씌워 리스트 타입으로 변환해야 합니다.

     

    리스트 컴프리헨션:

    sequence = [1, 2, 3, 4]
    result = [x * 2 for x in sequence]
    print(result)
    
    #출력결과
    #[2, 4, 6, 8]

     

     리스트 컴프리헨션은 for문을 사용하여 리스트를 간단하게 생성하는 방법입니다. 위의 예시에서는 sequence라는 시퀀스 데이터 타입의 각 원소에 대해 x * 2라는 연산을 수행하여 새로운 리스트[2, 4, 6, 8]를 생성하고, result 변수에 할당하고 있습니다.

     

    중첩된 for문:

    sequence1 = [1, 2]
    sequence2 = ['a', 'b', 'c', 'd']
    for x in sequence1:
    	for y in sequence2: # 처리할 작업
        	print(x, y)
            
    #출력결과
    #1 a
    #1 b
    #1 c
    #1 d
    #2 a
    #2 b
    #2 c
    #2 d

     

    중첩된 for문은 한 for문 안에 다른 for문이 있는 형태로 사용되며, 시퀀스 데이터 타입의 중첩된 원소를 처리할 때 유용합니다. 예를 들어, 이차원 리스트의 각 원소에 접근하거나, 두 개의 리스트의 조합을 처리할 때 사용될 수 있습니다. 이를 응용하게 되면 다차원의 데이터로 처리할 수 있게 됩니다.

     

     

    3. 마치며

     지금까지 프로그램의 기본 제어문인 for문의 사용 목적과 파이썬에서의 사용 방식에 대해 정리해 보았습니다. 위의 짧은 코드를 예시로 보여드린 이유는 for문과 같은 제어문은 상황에 맞게 응용을 하면서 사용되기 때문에 제가 어떠한 예문을 넣는다 하더라도 보시는 분들께서 바로 적용할 수 없어서입니다. 향후에 엑셀 데이터 정리하는 코드를 공유드릴 예정인데 그때는 확실한 예제 코드를 공유하도록 하겠습니다. 포스팅이 추가되면 아래에 링크 달도록 하겠습니다.

    댓글