파이썬(Python) 강좌 2. 리스트(List), 딕셔너리(Dictionary)

    이 포스팅을 읽는 대상은 프로그래밍을 배우지 않는 분들도 쉽게 따라할 수 있게 할 예정입니다. 추후 이 포스팅은 제가 다니고 있는 회사분들에게 강의를 하는 목적도 가지고 있기 때문에 최대한 쉽게 작성할 예정입니다.


    현재 파이썬을 설치조차 하지 않거나, 아직 파이썬에 대해서 잘 모르시는 분들은 제가 예전에 포스팅했던 파이썬 설치부터 시작하셔서, 하나둘 스텝업 하시기 바랍니다.




    예전 파이썬 강좌




    1. 파이썬에서의 리스트 처리



    다른 언어를 사용해신 분들은 잘 아시겠지만, 파이썬에서도 역시 리스트를 지원합니다. 다만 약간 다른 점이 리스트가 상당히 자유롭습니다. 예를 들어, JAVA 같은 경우는 String으로 선언된 List같은 경우 (ex: List<String>)에는 Integer같은 값을 당연히 넣을 수 없습니다만, 파이썬은 애시당초 변수에 어떤 형인지를 선언하지 않기 때문에 자유롭게 넣을 수 있습니다. 그래서 String, Integer, Float 형태의 값들을 마음껏 넣으셔도 됩니다.(물론 받는 입장에서는 당연히 헷갈릴 수 있겠지만요)


    아래는 리스트에서 사용되는 예제입니다.


    1
    2
    3
    4
    5
    6
    7
    a=[1,2,3]   
    print(a)   
    print(len(a))   
    print(a[0])
    print(a[2])
    a[2= 7
    print(a)

    cs


    위 내용을 실행하면 아래와 같이 나옵니다.


    1
    2
    3
    4
    5
    [123]
    3
    1
    3
    [127]



    위 코드를 설명하자면, a = [1,2,3]은 a라는 변수에 1,2,3이라는 Integer(정수형) 값을 리스트 형태로 대입시켰고,

    그걸 그대로 출력(print(a)) 하면, [1,2,3]이라는 값이 나옵니다.


    len(변수)라는 명령어를 사용하면, 해당 리스트의 사이즈가 나옵니다. 사이즈는 리스트의 개수를 뜻하기에 3이라는 값이 찍힙니다.


    a[0]에서 0은 첫번째의 값을 말합니다. 컴퓨터 배열은 1부터 시작하는 것이 아닌 0부터 시작을 합니다. 그래서 a[0]는 a 리스트의 0번째 값을 뜻합니다. 0번째 값은 1, 1번째 값은 2, 2번째 값은 3이기에 각각 a[0]과 a[2]는 1과 3이라는 값이 찍힙니다.


    a[2] = 7은 a[2]의 값을 7로 변경해라 이런 의미입니다. 현재는 3이라는 값이 저장되어 있지만, 3이 7로 변경되어 마지막에 다시 print(a)를 실행하면 [1,2,3]이 [1,2,7]로 변경되어 있을 것입니다.


    위 내용은 매우 심플한 리스트를 설명하는 정도에 그칩니다. 아래는 약간의 심화학습이 있습니다. 다른 언어에서는 사용되지 않는 표현이 있다보니 약간 헷갈릴 수 있습니다.



    1
    2
    a=[1,2,3]
    print(a[:])



    다른 언어에서 사용되지 않는 표현이 나왔습니다. a[:]는  a의 전체를 선택한 것과 같은 의미입니다. 콜론을 기준으로 왼쪽은 시작값, 우측은 마지막 값을 표현합니다. 결국 위의 내용은 아래와 같습니다.


    1
    [123]




    이제 조금 더 생소한 것을 보여드리겠습니다.


    1
    2
    a=[1,2,3]
    print(a[:2])




    위 결과값은 어떻게 될까요??

    아마 많은 분들이 [1,2,3]이라고 말할 것입니다. 배열에서 2라는 표현은 3번째 값을 의미하기 때문이죠. 그러나 결과값은 아래와 같습니다.


    1
    [12]




    여기서 파이썬은 다른 언어와 약간 다른 모습을 보여준다는 것을 알 수 있습니다. 즉 우측값은 선언된 값의 전까지 보여준다는 의미입니다. a[:3]은 4번째 배열전까지인 3번째 배열까지의 모습을 뜻합니다. 그럼 또 단순히 우측값은 해당 숫자까지만 가지고 온다라고 이해하면 되겠군이라고 생각할 수 있겠지만 파이썬에서는 이런 말도 지원해서 단순히 그런식으로 외우면 안됩니다.


    1
    2
    a=[1,2,3]
    print(a[:-1])



    -값은 말그대로 현재 배열을 반대로 시작하는 것입니다. 쉽게 윷놀이에서 빽도라고 이해해도 됩니다. 여기서 -1은 3이라는 값을 뜻합니다. -2는 2를 뜻합니다. 그런데 -1까지의 값까지인 1,2,3을 보여주는 것인가라고 헷갈릴 수 있겠지만 좀전 제가 말한것처럼 해당 값의 바로 전값까지를 가리킵니다.


    결국 위의 실행결과는 아래와 같습니다.


    1
    [12]




    이런 형태의 표현은 자주 나오는 형태이니, 파이썬을 배우지 않는 분들은 좀 헷갈릴 수 있지만 언어를 처음 배우신 분들은 오히려 이런 표현이 자유롭다라고 느낄 수도 있겠습니다. 위에서 사용되는 콜론으로 자르는 기법을 파이썬에서는 슬라이싱(slicing)이라고 합니다. 파이썬은 편리한 기법들이 많이 있습니다. 결국 파이썬과 자바의 차이점은 이 편리한 기법들을 얼만큼 잘 다루느냐라고 봐도 될 것 같습니다. 


    파이썬을 자바처럼 코딩해도 상관은 없습니다. 저 역시 초반에는 그런식으로 코딩을 했지만(아직까지는 자바 개발자이다 보니까요) 하나둘 파이썬의 편리한 코딩을 익히면서, 파이썬의 매력에 빠지는 것 같습니다.






    2. 파이썬에서의 딕셔너리(Dictionary) 처리



    딕셔너리는 다 아시다시피 사전이라는 의미를 가지고 있습니다. 한마디로 데이터를 사전처럼 처리한다는 것입니다. 자바에서 비슷한 의미로는 Key, Value형태의 map과 유사하다고 볼 수 있습니다. 리스트형은 시퀀스 혹은 인덱스 순서대로 값을 저장하기 때문에 배열의 순서가 key라고 볼 수 있지만, 딕셔너리는 키를 설정할 수 있습니다.


    예를 들어 아래와 같은 값을 설정할 수 있겠죠


    sex:male

    country:korea


    위 데이터를 보면 왼쪽에 Key(다른 말로 속성명)가 있고, 우측에 Value(속성값)가 있습니다. 

    딕셔너리를 생성하며, 값을 저장하려면 아래와 같이 하면 됩니다.


    1
    2
    3
    4
    5
    6
    7
    people = {}  # 딕셔너리 생성
     
    people['sex'= 'male'      # sex라는 Key에 male이라는 Value값 저장
    people['country'= 'korea' # country라는 Key에 korea이라는 Value값 저장
     
    print(people)
    >> {'sex''male''country''korea'}
    cs


    print(people)을 해보니, 익숙한 형태의 값이 보입니다. json 형태와 매우 유사해보입니다.

    위 내용을 보시면, 값을 저장한 것만 표현 했습니다. 이제는 값을 꺼내보는 것을 해보겠습니다.


    1
    2
    3
    4
    5
    6
    7
    people = {}  # 딕셔너리 생성
     
    people['sex'= 'male'      # sex라는 Key에 male이라는 Value값 저장
    people['country'= 'korea' # country라는 Key에 korea이라는 Value값 저장
     
    print(people['sex'])
    >> male
    cs


    값을 저장한 것처럼 표현하면 됩니다. Java 개발자라면 왠지, Get해야 될 것 같겠지만, 그런거 없습니다. 그냥 간편하게 저장한 방식처럼 꺼내오시면 됩니다.



    이상 리스트와 딕셔너리에 대한 표현을 설명해봤습니다. 다음에는 이제 본격적으로 조건절을 사용해서, 고전적인 성적등급을 나누는 프로그램을 짜보도록 하겠습니다.



    댓글

    Designed by JB FACTORY