점프 투 파이썬 00장 들어가기 전에 00-1 머리말 00-2 저자소개 00-3 동영상 강의 00-4 소스 코드 00-5 책 구입 안내 00-6 주요변경이력 01장 파이썬이란 무엇인가? 01-1 파이썬이란? 01-2 파이썬의 특징 01-3 파이썬으로 무엇을 할 수 있을까? 01-4 파이썬 설치하기 01-5 파이썬 둘러보기 01-6 파이썬과 에디터 02장 파이썬 프로그래밍의 기초, 자료형 02-1 숫자형 02-2 문자열 자료형 02-3 리스트 자료형 02-4 튜플 자료형 02-5 딕셔너리 자료형 02-6 집합 자료형 02-7 불 자료형 02-8 자료형의 값을 저장하는 공간, 변수 02장 되새김 문제 03장 프로그램의 구조를 쌓는다! 제어문 03-1 if문 03-2 while문 03-3 for문 03장 되새김 문제 04장 파이썬의 입출력 04-1 함수 04-2 사용자 입출력 04-3 파일 읽고 쓰기 04-4 프로그램의 입출력 04장 되새김 문제 05장 파이썬 날개 달기 05-1 클래스 05-2 모듈 05-3 패키지 05-4 예외 처리 05-5 내장 함수 05-6 표준 라이브러리 05-7 외부 라이브러리 05장 되새김 문제 06장 파이썬 프로그래밍, 어떻게 시작해야 할까? 06-1 내가 프로그램을 만들 수 있을까? 06-2 3과 5의 배수를 모두 더하기 06-3 게시판 페이징하기 06-4 간단한 메모장 만들기 06-5 탭 문자를 공백 문자 4개로 바꾸기 06-6 하위 디렉터리 검색하기 07장 파이썬 날아오르기 07-1 파이썬과 유니코드 07-2 클로저와 데코레이터 07-3 이터레이터와 제너레이터 07-4 파이썬 타입 어노테이션 08장 정규표현식 08-1 정규 표현식 살펴보기 08-2 정규 표현식 시작하기 08-3 강력한 정규 표현식의 세계로 09장 부록 09-1 파이썬 코딩 면허 시험 20제 09-2 챗GPT와 함께 파이썬 공부하기 10장 정답 및 풀이 마치며.
    Published with WikiDocs
    1. 점프 투 파이썬
    2. 05장 파이썬 날개 달기
    3. 05-5 내장 함수
    1. 도서 증정 이벤트 !!
    2. 위키독스

    05-5 내장 함수

    지금까지 파이썬으로 프로그래밍하기 위해 알아야 하는 것들을 대부분 공부했다. 이제 여러분은 원하는 프로그램을 직접 만들 수 있을 것이다. 하지만 그 전에 먼저 여러분이 만들려는 프로그램이 이미 만들어져 있는지 살펴보기 바란다.

    물론 공부를 위해서라면 누군가 만들어 놓은 프로그램을 또 만들 수도 있다. 하지만 그런 목적이 아니라면 이미 만들어진 것을 다시 만드는 것은 불필요한 행동이다. 그리고 이미 만들어진 프로그램은 테스트 과정을 수없이 거쳤기 때문에 충분히 검증되어 있다. 따라서 무엇인가 새로운 프로그램을 만들기 전에는 이미 만들어진 것들, 그중에서도 특히 파이썬 배포본에 함께 들어 있는 파이썬 라이브러리를 살펴보는 것이 매우 중요하다.

    "이미 있는 것을 다시 만드느라 시간을 낭비하지 말라."

    라이브러리를 살펴보기 전에 파이썬 내장(built-in) 함수를 먼저 살펴보자. 우리는 이미 몇 가지 내장 함수를 배웠다. print, del, type 등이 바로 그것이다. 이러한 파이썬 내장 함수는 파이썬 모듈과 달리 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용할 수 있다.

    이 책에서는 활용 빈도가 높고 중요한 함수를 중심으로 알파벳 순서대로 간략히 정리했다. 파이썬으로 프로그래밍을 하기 위해 이들 함수를 지금 당장 모두 알아야 하는 것은 아니므로 가벼운 마음으로 천천히 살펴보자.

    • abs
    • all
    • any
    • chr
    • dir
    • divmod
    • enumerate
    • eval
    • filter
    • hex
    • id
    • input
    • int
    • isinstance
    • len
    • list
    • map
    • max
    • min
    • oct
    • open
    • ord
    • pow
    • range
      • 인수가 하나일 경우
      • 인수가 2개일 경우
      • 인수가 3개일 경우
    • round
    • sorted
    • str
    • sum
    • tuple
    • type
    • zip

    abs

    abs(x)는 어떤 숫자를 입력받았을 때 그 숫자의 절댓값을 리턴하는 함수이다.

    >>> abs(3)
    3
    >>> abs(-3)
    3
    >>> abs(-1.2)
    1.2
    

    all

    all(x)는 반복 가능한 데이터 x를 입력값으로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴한다.

    반복 가능한 데이터란 for 문에서 사용할 수 있는 자료형을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다.

    다음 예를 살펴보자.

    >>> all([1, 2, 3])
    True
    

    리스트 [1, 2, 3]은 모든 요소가 참이므로 True를 리턴한다.

    >>> all([1, 2, 3, 0])
    False
    

    리스트 [1, 2, 3, 0] 중에서 요소 0은 거짓이므로 False를 리턴한다.

    >>> all([])
    True
    

    만약 all의 입력 인수가 빈 값인 경우에는 True를 리턴한다.

    자료형의 참과 거짓은 02-7을 참고하기 바란다.

    any

    any(x)는 반복 가능한 데이터 x를 입력으로 받아 x의 요소 중 하나라도 참이 있으면 True를 리턴하고 x가 모두 거짓일 때만 False를 리턴한다. 즉, all(x)의 반대로 작동한다.

    다음 예를 살펴보자.

    >>> any([1, 2, 3, 0])
    True
    

    리스트 [1, 2, 3, 0] 중에서 1, 2, 3이 참이므로 True를 리턴한다.

    >>> any([0, ""])
    False
    

    리스트 [0, ""]의 요소 0과 ""은 모두 거짓이므로 False를 리턴한다.

    >>> any([])
    False
    

    만약 any의 입력 인수가 빈 값인 경우에는 False를 리턴한다.

    chr

    chr(i)는 유니코드 숫자 값을 입력받아 그 코드에 해당하는 문자를 리턴하는 함수이다.

    유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준 코드이다

    >>> chr(97)
    'a'
    >>> chr(44032)
    '가'
    

    dir

    dir은 객체가 지닌 변수나 함수를 보여 주는 함수이다. 다음 예는 리스트와 딕셔너리가 지닌 함수(메서드)를 보여 주는 예이다. 우리가 02장에서 살펴본 함수들을 구경할 수 있다.

    >>> dir([1, 2, 3])
    ['append', 'count', 'extend', 'index', 'insert', 'pop',...]
    >>> dir({'1':'a'})
    ['clear', 'copy', 'get', 'has_key', 'items', 'keys',...]
    

    divmod

    divmod(a, b)는 2개의 숫자 a, b를 입력으로 받는다. 그리고 a를 b로 나눈 몫과 나머지를 튜플로 리턴한다.

    >>> divmod(7, 3)
    (2, 1)
    

    몫을 구하는 연산자 //와 나머지를 구하는 연산자 %를 각각 사용한 결과와 비교해 보자.

    >>> 7 // 3
    2
    >>> 7 % 3
    1
    

    enumerate

    enumerate는 ‘열거하다’라는 뜻이다. 이 함수는 순서가 있는 데이터(리스트, 튜플, 문자열)를 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴한다.

    보통 enumerate 함수는 for 문과 함께 사용한다.

    다음 예를 살펴보자.

    >>> for i, name in enumerate(['body', 'foo', 'bar']):
    ...     print(i, name)
    ...
    0 body
    1 foo
    2 bar
    

    인덱스 값과 함께 body, foo, bar가 순서대로 출력되었다. 즉, enumerate를 for 문과 함께 사용하면 자료형의 현재 순서index와 그 값을 쉽게 알 수 있다.

    for 문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인덱스 값이 필요할 때 enumerate 함수를 사용하면 매우 유용하다.

    eval

    eval(expression)은 문자열로 구성된 표현식을 입력으로 받아 해당 문자열을 실행한 결괏값을 리턴하는 함수이다.

    >>> eval('1+2')
    3
    >>> eval("'hi' + 'a'")
    'hia'
    >>> eval('divmod(4, 3)')
    (1, 1)
    

    filter

    filter란 ‘무엇인가를 걸러 낸다’라는 뜻으로, filter 함수도 이와 비슷한 기능을 한다.

    filter(함수, 반복_가능한_데이터)
    

    filter 함수는 첫 번째 인수로 함수, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 데이터를 받는다. 그리고 반복 가능한 데이터의 요소 순서대로 함수를 호출했을 때 리턴값이 참인 것만 묶어서(걸러 내서) 리턴한다.

    다음 예를 살펴보자.

    # positive.py 
    def positive(l): 
        result = [] 
        for i in l: 
            if i > 0: 
                result.append(i) 
        return result
    
    print(positive([1,-3,2,0,-5,6]))
    

    [실행 결과]

    [1, 2, 6]
    

    위에서 만든 positive는 리스트를 입력으로 받아 각각의 요소를 판별해서 양수 값만 리턴하는 함수이다.

    filter 함수를 사용하면 위 내용을 다음과 같이 간단하게 작성할 수 있다.

    # filter1.py
    def positive(x):
        return x > 0
    
    print(list(filter(positive, [1, -3, 2, 0, -5, 6])))
    

    [실행 결과]

    [1, 2, 6]
    

    filter(positive, [1, -3, 2, 0, -5, 6])은 [1, -3, 2, 0, -5, 6]의 각 요솟값을 순서대로 positive 함수에 적용하여 리턴값이 참인 것만 묶어서 리턴한다. 즉, 1, 2, 6 요소만 x > 0 문장에 참이 되므로 [1, 2, 6]이라는 결괏값이 출력된다.

    list 함수는 filter 함수의 리턴값을 리스트로 출력하기 위해 사용했다.

    이 예제는 lambda를 사용하면 더욱 간단해진다.

    >>> list(filter(lambda x: x > 0, [1, -3, 2, 0, -5, 6]))
    [1, 2, 6]
    

    hex

    hex(x)는 정수를 입력받아 16진수(hexadecimal) 문자열로 변환하여 리턴하는 함수이다.

    >>> hex(234)
    '0xea'
    >>> hex(3)
    '0x3'
    

    id

    id(object)는 객체를 입력받아 객체의 고유 주솟값(레퍼런스)을 리턴하는 함수이다.

    >>> a = 3
    >>> id(3)
    135072304
    >>> id(a)
    135072304
    >>> b = a
    >>> id(b)
    135072304
    

    위 예의 3, a, b는 고유 주솟값이 모두 135072304이다. 즉, 3, a, b가 모두 같은 객체를 가리키고 있다.

    만약 id(4)라고 입력하면 4는 3, a, b와 다른 객체이므로 당연히 다른 고유 주솟값이 출력된다.

    >>> id(4)
    135072292
    

    input

    input([prompt])는 사용자 입력을 받는 함수이다. 입력 인수로 문자열을 전달하면 그 문자열은 프롬프트가 된다.

    []는 괄호 안의 내용을 생략할 수 있다는 관례 표기법이라는 것을 기억하자.

    >>> a = input()
    hi
    >>> a
    'hi'
    >>> b = input("Enter: ")
    Enter: hi
    >>> b
    'hi'
    

    int

    int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자를 정수로 리턴하는 함수이다. 만약 정수가 입력되면 그대로 리턴한다.

    >>> int('3')
    3
    >>> int(3.4)
    3
    

    int(x, radix)는 radix 진수로 표현된 문자열 x를 10진수로 변환하여 리턴한다. 예를 들어 2진수로 표현된 '11'의 10진수 값은 다음과 같이 구할 수 있다.

    >>> int('11', 2)
    3
    

    16진수로 표현된 '1A'의 10진수 값은 다음과 같이 구할 수 있다.

    >>> int('1A', 16)
    26
    

    isinstance

    isinstance(object, class) 함수는 첫 번째 인수로 객체, 두 번째 인수로 클래스를 받는다. 입력으로 받은 객체가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 리턴한다.

    >>> class Person: pass
    ...
    >>> a = Person()
    >>> isinstance(a, Person)
    True
    

    위 예는 a 객체가 Person 클래스에 의해 생성된 인스턴스라는 것을 확인시켜 준다.

    >>> b = 3
    >>> isinstance(b, Person)
    False
    

    b는 Person 클래스로 만든 인스턴스가 아니므로 False를 리턴한다.

    len

    len(s)는 입력값 s의 길이(요소의 전체 개수)를 리턴하는 함수이다.

    >>> len("python")
    6
    >>> len([1,2,3])
    3
    >>> len((1, 'a'))
    2
    

    list

    list(iterable)은 반복 가능한 데이터를 입력받아 리스트로 만들어 리턴하는 함수이다.

    >>> list("python")
    ['p', 'y', 't', 'h', 'o', 'n']
    >>> list((1,2,3))
    [1, 2, 3]
    

    list 함수에 리스트를 입력하면 똑같은 리스트를 복사하여 리턴한다.

    >>> a = [1, 2, 3]
    >>> b = list(a)
    >>> b
    [1, 2, 3]
    

    map

    map(f, iterable)은 함수(f)와 반복 가능한 데이터를 입력으로 받는다. map은 입력받은 데이터의 각 요소에 함수 f를 적용한 결과를 리턴하는 함수이다.

    다음 예를 살펴보자.

    # two_times.py
    def two_times(numberList):
        result = []
        for number in numberList:
            result.append(number*2)
        return result
    
    result = two_times([1, 2, 3, 4])
    print(result)
    

    two_times는 리스트를 입력받아 리스트의 각 요소에 2를 곱해 리턴하는 함수이다. 실행 결과는 다음과 같다.

    [2, 4, 6, 8]
    

    위 예제는 map 함수를 사용하여 다음처럼 바꿀 수 있다.

    >>> def two_times(x): 
    ...     return x*2
    ...
    >>> list(map(two_times, [1, 2, 3, 4]))
    [2, 4, 6, 8]
    

    이 예제를 해석해 보자. 먼저 리스트의 첫 번째 요소인 1이 two_times 함수의 입력값으로 들어가고 1 * 2의 과정을 거쳐서 2가 된다. 다음으로 리스트의 두 번째 요소인 2가 2 * 2의 과정을 거쳐 4가 된다. 따라서 결괏값은 이제 [2, 4]가 된다. 총 4개의 요솟값이 모두 수행되면 [2, 4, 6, 8]이 된다. 이것이 map 함수가 하는 일이다.

    map 함수의 결과를 리스트로 출력하기 위해 list 함수를 사용했다. map 함수는 map 객체를 리턴한다.

    앞의 예는 lambda를 사용하여 다음처럼 간략하게 만들 수 있다.

    >>> list(map(lambda a: a*2, [1, 2, 3, 4]))
    [2, 4, 6, 8]
    

    max

    max(iterable)은 인수로 반복 가능한 데이터를 입력받아 그 최댓값을 리턴하는 함수이다.

    >>> max([1, 2, 3])
    3
    >>> max("python")
    'y'
    

    min

    min(iterable)은 max 함수와 반대로, 인수로 반복 가능한 데이터를 입력받아 그 최솟값을 리턴하는 함수이다.

    >>> min([1, 2, 3])
    1
    >>> min("python")
    'h'
    

    oct

    oct(x)는 정수를 8진수 문자열로 바꾸어 리턴하는 함수이다

    >>> oct(34)
    '0o42'
    >>> oct(12345)
    '0o30071'
    

    open

    open(filename, [mode])은 ‘파일 이름’과 ‘읽기 방법’을 입력받아 파일 객체를 리턴하는 함수이다. 읽기 방법(mode)을 생략하면 기본값인 읽기 모드(r)로 파일 객체를 만들어 리턴한다.

    mode 설명
    w 쓰기 모드로 파일 열기
    r 읽기 모드로 파일 열기
    a 추가 모드로 파일 열기
    b 바이너리 모드로 파일 열기

    b는 w, r, a와 함께 사용한다. 예를 들어 rb는 ‘바이너리 읽기 모드’를 의미한다.

    >>> f = open("binary_file", "rb")
    

    ord

    ord(c)는 문자의 유니코드 숫자 값을 리턴하는 함수이다.

    ord 함수는 chr 함수와 반대로 동작한다.

    >>> ord('a')
    97
    >>> ord('가')
    44032
    

    pow

    pow(x, y)는 x를 y제곱한 결괏값을 리턴하는 함수이다.

    >>> pow(2, 4)
    16
    >>> pow(3, 3)
    27
    

    range

    range([start,] stop [,step])은 for 문과 함께 자주 사용하는 함수이다. 이 함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 리턴한다.

    인수가 하나일 경우

    시작 숫자를 지정해 주지 않으면 range 함수는 0부터 시작한다.

    >>> list(range(5))
    [0, 1, 2, 3, 4]
    

    인수가 2개일 경우

    입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다. 단, 끝 숫자는 해당 범위에 포함되지 않는다는 것에 주의하자.

    >>> list(range(5, 10))
    [5, 6, 7, 8, 9]
    

    인수가 3개일 경우

    세 번째 인수는 숫자 사이의 거리를 말한다.

    >>> list(range(1, 10, 2))
    [1, 3, 5, 7, 9]
    >>> list(range(0, -10, -1))
    [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
    

    round

    round(number [,ndigits])는 숫자를 입력받아 반올림해 리턴하는 함수이다.

    [,ndigits]는 ndigits가 있을 수도 있고, 없을 수도 있다는 의미이다.

    >>> round(4.6)
    5
    >>> round(4.2)
    4
    

    다음과 같이 실수 5.678을 소수점 2자리까지만 반올림하여 표시할 수 있다.

    >>> round(5.678, 2)
    5.68
    

    round 함수의 두 번째 인수는 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)를 의미한다.

    sorted

    sorted(iterable)는 입력 데이터를 정렬한 후 그 결과를 리스트로 리턴하는 함수이다.

    >>> sorted([3, 1, 2])
    [1, 2, 3]
    >>> sorted(['a', 'c', 'b'])
    ['a', 'b', 'c']
    >>> sorted("zero")
    ['e', 'o', 'r', 'z']
    >>> sorted((3, 2, 1))
    [1, 2, 3]
    

    리스트 자료형에도 sort 함수가 있다. 하지만 리스트 자료형의 sort 함수는 리스트 객체 그 자체를 정렬만 할 뿐, 정렬된 결과를 리턴하지는 않는다.

    str

    str(object)는 문자열 형태로 객체를 변환하여 리턴하는 함수이다.

    >>> str(3)
    '3'
    >>> str('hi')
    'hi'
    

    sum

    sum(iterable)은 입력 데이터의 합을 리턴하는 함수이다.

    >>> sum([1,2,3])
    6
    >>> sum((4,5,6))
    15
    

    tuple

    tuple(iterable)은 반복 가능한 데이터를 튜플로 바꾸어 리턴하는 함수이다. 만약 입력이 튜플인 경우에는 그대로 리턴한다.

    >>> tuple("abc")
    ('a', 'b', 'c')
    >>> tuple([1, 2, 3])
    (1, 2, 3)
    >>> tuple((1, 2, 3))
    (1, 2, 3)
    

    type

    type(object)는 입력값의 자료형이 무엇인지 알려 주는 함수이다.

    >>> type("abc")
    <class 'str'>
    >>> type([ ])
    <class 'list'>
    >>> type(open("test", 'w'))
    <class '_io.TextIOWrapper'>
    

    zip

    zip(*iterable)은 동일한 개수로 이루어진 데이터들을 묶어서 리턴하는 함수이다.

    여기서 사용한 *iterable은 반복 가능한 데이터를 여러 개 입력할 수 있다는 의미이다.

    다음 예제로 사용법을 확인해 보자.

    >>> list(zip([1, 2, 3], [4, 5, 6]))
    [(1, 4), (2, 5), (3, 6)]
    >>> list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))
    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    >>> list(zip("abc", "def"))
    [('a', 'd'), ('b', 'e'), ('c', 'f')]
    
    마지막 편집일시 : 2023년 6월 15일 11:37 오전
    댓글 53 피드백
    댓글 43개 더 보기...
    @남민우님, 수정했습니다. 감사합니다. - 박응용, 2018년 9월 18일 9:20 오전
    zip(iterable*) 이런곳에 *는 무엇을 의미하는 건가요? 어떤 키워드로 검색해보면 될까요? 감사합니다!! - Minkyung, 2018년 10월 3일 11:09 오전
    @Minkyung님, 본문에 질문하신 내용부분을 보강설명하였습니다. 알려주셔서 감사합니다. - 박응용, 2018년 10월 4일 10:09 오전
    우와 빠르게 답글 남겨주셔서 감사합니다!! 그럼 "*"은 "여러개"를 뜻하는 것인가 보네요!! - Minkyung, 2018년 10월 4일 10:26 오전
    all() 함수에 대한 질문이 있습니다. "※ 반복 가능한 자료형이란 for문으로 그 값을 출력할 수 있는 것을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다." 라는 설명을 보고 아래와 같이 코드를 입력하였습니다. all("") 제 생각에 문자열 ""은 false 이므로, 위 코드의 결과값은 false가 나와야 할 것 같은데 true라고 나옵니다. 그 이유를 알 수 있을까요? - SG, 2018년 12월 20일 10:10 오전
    @SG님 all의 입력이 되는 반복가능한 자료형이 비어 있을경우 all은 True를 any는 False를 리턴합니다. 내용은 본문에 추가하도록 하겠습니다. 알려주셔서 감사합니다. - 박응용, 2018년 12월 20일 9:27 오후
    정말 잘 읽고 있습니다. 어느덧 5-5까지 따라왔네요. 질문이 있습니다. 제가 통계학과라 이전에 주로 사용하던 프로그램은 R인데, R같은 경우에는 함수에 따라서 어떻게 작성되어있는지 알 수 있는 경우가 있거든요. 예를 들어서 함수이름을 콘솔에다 입력시키면 x <- ..., y <- .... 이런 식으로 어떻게 작성되어있는지 알 수 있는 경우가 있습니다. mean 같은 함수를 치면 S4를 이용했다면서 자세하게 나오지는 않지만요. 이 단원에서 hex라는 함수를 보고, 어떻게 짰을까 궁금해서 R에서처럼 입력시켜보니깐 <function hex(number, /)> 가 얻을 수 있는 전부네요. 어떻게 코드를 작성했는지 알 수 있는 방법은 없을까요? 앞으로 아이디어를 얻거나 어떻게 돌아가는지를 파악할 때 유용할 것 같은데요. 항상 잘 읽고 있습니다. 감사합니다. - 윤현필(학부/상경대학 응용통계학과), 2018년 12월 27일 11:03 오전
    @윤현필님, hex 같은 경우는 파이썬으로 작성된 모듈이 아닌 내장함수 입니다. 파이썬으로 작성된 모듈은 파이썬이 설치된 디렉터리에서 확인할 수 있지만 내장함수 같은 경우는 c로 작성되어진 파이썬 소스코드를 참고하셔야 합니다. 다음 스택오버플로우 문서를 참조하시기 바랍니다. https://stackoverflow.com/questions/8608587/finding-the-source-code-for-built-in-python-functions - 박응용, 2018년 12월 30일 7:17 오후
    map함수 부분에 오타가 있는데 iterable이 아니라 reiterable입니다. - Ju, 2019년 1월 10일 2:23 오후
    enumerate()에 set 처럼 unsubscriptable 한 자료형을 넣어도 인덱스 만들어서 잘 돌아갑니다. >>> set(a) {'b', 'a', 'c'} >>> for i,j in enumerate(set(a)) : print(i,j) 0 b 1 a 2 c >>> - Hanlim, 2020년 12월 25일 12:28 오후
    ※ 댓글 작성은 로그인이 필요합니다. (또는 피드백을 이용해 주세요.)
    • 이전글 : 05-4 예외 처리
    • 다음글 : 05-6 표준 라이브러리
    TOP

    이 페이지에 대한 피드백을 남겨주세요

    ※ 피드백은 저자에게 e-메일로 전달됩니다.

    댓글을 신고합니다.

    해당 댓글을 신고하시겠습니까? 댓글 신고는 다음과 같은 경우에 사용해주세요:
    1. 스팸 또는 광고성 내용이 포함된 경우
    2. 욕설, 비방, 개인정보 유출 등 부적절한 내용이 포함된 경우
    3. 저작권을 침해하는 내용이 포함된 경우

    ※ 신고하신 내용은 관리자에게 전달되며, 확인 후 적절한 조치가 이루어집니다. 신고는 익명으로 처리되며, 신고자의 정보는 공개되지 않습니다.