티스토리 뷰

목차

    반응형

    리스트 (List)

    [...] 형태로 파이썬 리스트(List)를 나타냅니다.


    1
    = [10203040]
    cs


    아래와 같이 줄을 바꿔도 허용 됩니다. 마지막 쉼표( , )는 선택 사항입니다.


    1
    2
    3
    4
    5
    colors =
        'red'
        'green'
        'blue',
    ]
    cs


    여러 자료형을 섞어서 리스트를 만들 수 있습니다.


    1
    = [10'ABC']
    cs


    리스트 요소는 for를 사용하여 접근/사용 할 수 있습니다.


    1
    2
    3
    = [12345]
    for n in a:
        print n
    cs

    [ n ] 형태로 n번째 요소를 참조합니다. 첫번째 요소는 0번째로 간주합니다.


    1
    2
    3
    = ['A''B''C''D''E''F''G']
    a1 = a [0]        # 0 번째 : 'A'
    a2 = a [2]        # 두번째 : 'C'
    cs


    [ n : m ] 형태로 n번째에서 m번째 전까지(즉, m - 1번째 까지) 요소를 참좋바니다. n을 생략하면 처음부터(0부터) m번째 전까지 참조합니다.


    1
    2
    3
    4
    = [0123456789]
    a1 = a [2 : 4# 두 번째부터 세 번째 : [2, 3]
    a2 = a [2 :]   # 두 번째부터 마지막 : [2, 3, 4, 5, 6, 7, 8, 9]
    a3 = a [4]     # 처음부터 세 번째 : [0, 1, 2, 3]
    cs


    [ n : m : s ]는 s개 간격으로 참조합니다.


    1
    2
    = [0123456789]
    a1 = a[1 : 8 : 2# 1번째 부터 7번째 까지 2개 간격 : 1, 3, 5, 7
    cs


    n, m에 음수를 지정하면 역순(뒤에서 부터)으로 계산합니다.


    1
    2
    3
    = ['A''B''C''D''E''F''G']
    a1 = a [-1]      # 마지막 문자 'G'
    a2 = a [-3 : -1# 마지막에서 3번째 문자~마지막에서 첫 번째 이전 문자 : 'E', 'F'
    cs


    + 연산자를 사용하여 list를 합칠 수 있습니다.


    1
    print [123+ [456# => [1, 2, 3, 4, 5, 6]
    cs


    len() 함수를 사용하여 리스트 요소 개수를 확인합니다.


    1
    print len ([123]) # => 3
    cs


    파이썬 리스트의 리스트를 만들 수 있습니다.


    1
    2
    3
    4
    5
    = [[12], [34], [56]]
     
    for list in a:
        for n in list:
            print n,  #=> 1 2 3 4 5 6
    cs

    튜플 (Tuple)

    (...)안에 요소를 삽입하는 것을 파이썬 튜플(tuple)이라고 합니다. 튜플은 list와 거의 비슷하게 사용할 수 있지만, 요소를 변경할 수 없다는 점이 다릅니다.


    1
    = (10203040)
    cs


    요소가 하나 뿐이라면 마지막에 쉼표(,)를 추가해야 합니다.


    1
    2
    = (10)  # 튜플이 아닌 숫자 10이 된다
    = (10,) # 튜플(10,)이 된다
    cs


    list 요소는 변경할 수 있지만 튜플 요소는 변경할 수 없습니다.


    1
    2
    3
    4
    5
    a1 = [10203040]
    a2 = (10203040)
     
    a1[2= 60    # 대입 가능
    a2[2= 60    # TypeError 예외 및 오류가 
    cs


    튜플을 list로 변환하려면 list(), list를 튜플로 변환하려면 tuple()를 사용합니다.


    1
    2
    print list((123))     #=> [1, 2, 3]
    print tuple([123])    #=> (1, 2, 3)
    cs


    [파이썬 입문] 리스트 튜플 딕셔너리 (List, Tuple, dict)


    딕셔너리 (dict)

    {...}는 사전 파이썬 딕셔너리(dict, dictionary)라는 키-값 한 쌍의 목록입니다.


    1
    = {'손흥민'30'이강인'40''80}
    cs


    각 요소는 다음과 같이 사용합니다.


    1
    2
    3
    d1 = d['손흥민']
    d2 = d['이강인']
    d3 = d['류현진']
    cs


    딕셔너리의 모든 요소와 값을 참조하려면 items(), keys(), values(), iteritems()를 사용합니다. 참조에는 순서가 없습니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    = {'손흥민'30'이강인'40'류현진'80}
     
    for k, v in d.items():
        print k, v             # 류현진 80, 손흥민 30, 이강인 40
     
    for k in d.keys():
        print k, d[k]          # 이강인 40, 손흥민 30, 류현진 80
     
    for v in d.values():
        print v                # 80, 30, 40
     
    for k, v in d.iteritems():
        print k, v             # Tanaka 80, 손흥민 30, 이강인 40
    cs

    리스트 함수(map(), filter(), reduce())

    map()은 파이썬 리스트 각 요소에 연산 처리하여 결과를 반환합니다. 아래 예제에서는 각 요소를 두배로 곱합니다.


    1
    2
    3
    4
    5
    6
    = [123]
     
    def double(x): return x * 2
    print map(double, a)            #=> [2, 4, 6] : 함수 방식
    print map(lambda x: x * 2, a)   #=> [2, 4, 6] : lambda 방식
    print [x * 2 for x in a]        #=> [2, 4, 6] : 내포 표기
    cs


    filter()는 리스트 각 요소를 연산 처리하며, 결과가 참이 되는 요소를 제거합니다. 아래 예제에서는 각 요소에서 홀수만을 표기합니다.


    1
    2
    3
    4
    5
    6
    7
    = [123]
     
    def isodd(x): return x % 2
     
    print filter(isodd, a)              #=> [1, 3] : 함수 방식
    print filter(lambda x: x % 2, a)    #=> [1, 3] : lambda 방식
    print [x for x in a if x % 2]       #=> [1, 3] : 내포 표기
    cs


    reduce()는 list의 처음 두 요소를 인수로 호출하여 연산 처리합니다. 이후 결과를 하나의 요소로 인식하여 순차적으로 다른 요소와의 연산을 처리합니다. 아래 예제는 각 요소를 모두 더한 결과를 출력합니다.


    1
    2
    3
    4
    5
    6
    = [12345]
     
    def add(x, y): return x + y
     
    print reduce(add, a)                #=> 15 : 함수 방식
    print reduce(lambda x, y: x + y, a) #=> 15 : lambda 방식
    cs


    파이썬 리스트 튜플 딕셔너리


    list 내포 표기

    list 내포 표기를 이용해 map(), filter(), 람다를 간단하게 사용할 수 있습니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    = [123]
    print [x * 2 for x in a]                        #=> [2, 4, 6]
    print [x * 2 for x in a if x == 3]              #=> [6]
    print [[x, x * 2for x in a]                   #=> [[1, 2], [2, 4], [3, 6]]
    print [(x, x * 2for x in a]                   #=> [(1, 2), (2, 4), (3, 6)]
     
    = [456]
    print [x * y for x in a for y in b]             #=> [4, 5, 6, 8, 10, 12, 12, 15, 18]
    print [a[i] * b[i] for i in range(len(a))]      #=> [4, 10, 18]
    cs


    셋 (set 세트)

    세트(set)는 파이썬 list 중복을 처리합니다. 세트끼리 뺄셈, OR, AND, XOR 연산을 지원합니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    = set(['red''blue''green'])
    = set(['green''yellow''white'])
     
    print a                #=> set(['red', 'blue', 'green'])
    print b                #=> set(['green', 'yellow', 'white'])
    print a - b            #=> set(['red', 'blue'])
    print a | b            #=> set(['red', 'blue', 'green', 'yellow', 'white'])
    print a & b            #=> set(['green'])
    print a ^ b            #=> set(['red', 'blue', 'yellow', 'white'])
    print 'green' in a     #=> True
    a.add('black')
    print a                #=> set(['red', 'blue', 'green', 'black'])
    cs




    파이썬 입문 강좌 11강


    관련 글

    [파이썬 기초] 변수, 상수, 문서문자열(python docstring)

    [파이썬 입문] 자료형 문자열 각종 수식 정리

    [파이썬 입문] 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙

    [파이썬 기초] 클래스 사용법 - 4단계로 마스터

    파이썬 딕셔너리 예제 4가지, for반복문 중심

    파이썬 정렬 sort sorted reverse=true 예제 4개

    반응형