조회수 확인

1. 파이썬 입문

 1-1. 튜플(Tuple)

  튜플을 사용하면 값들을 단일 개체에 채워 넣음으로써 간단한 데이터 구조를 생성할 수 있습니다. 다음과 같이 값들을 괄호로 둘러싸서 생성합니다.



1
2
stock = ('Geek'11213.05)
person = (firstname, lastname, address)
cs




  특수한 구문을 사용하여 0 개와 1 개의 요소를 가지는 튜플도 정의할 수 있습니다.



1
2
3
4
= ()    
= (item1, )
= item, 
 
cs




  리스트처럼 튜플의 값도 숫자 색인으로 추출할 수 있습니다. 하지만 다음과 같이 튜플을 변수들로 풀어헤치는 방식이 더 자주 쓰입니다.



1
2
name, shares, price = stock
firstname, lastname, address = person
cs






  리스트가 지원하는 대부분의 연산(색인, 분할, 연결 등)을 튜플도 지원하지만 한 번 생성되고 나면 튜플의 내용을 변경할 수 없다는 게 단점입니다. 따라서, 튜플은 항목을 추가하거나 삭제할 수 있는 객체들의 컬렉션이 아니라, 여러 부분으로 이루어진 단일 객체로 보는 것이 더 적절합니다.


  데이터를 저장하는데 튜플과 리스트를 함께 사용하기도 합니다. 예를 들어, 다음 프로그램은 콤마로 구분되는 여러 열을 갖는 데이터를 읽어 들이는 방법을 보여줍니다.




 * portfolio.csv


1
2
Google,500,1100.50
Samsung,20,300.75
cs




 * tuplelist.py




1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: utf-8 -*-
filename = "portfolio.csv"
portfolio = []
 
for line in open(filename):
    fields = line.split(",")   # 줄을 분할하여 리스트 만듬
    name = fields[0]
    shares = int(fields[1])
    price = float(fields[2])
    stock = (name, shares, price)  # 튜플을 생성 
    portfolio.append(stock)    # 레코드 리스트에 추가 
 
cs





 









 1-2. 집합(Set)

  집합은 객체들의 순서 없는 모음을 담는데 사용합니다.집합은 다음과 같이 set() 함수에 일련의 항목들을 넘겨주어 생성합니다.


1
2
= set([3,5,9,10])
= set("Hello")
cs




  리스트나 튜플과 달리, 집합은 순서가 없기 때문에 숫자로 색인이 될 수 없습니다. 게다가, 집합은 요소가 중복되는 일이 없습니다. 위의 t 객체 집합의 값을 들여다보면 아래와 같은 결과를 얻게 됩니다.









  'l' 문자가 한 번만 나오는 것을 볼 수 있습니다.

  

  집합은 집합 연산(합집합, 교집합, 차집합, 대칭 차집합 등)을 지원합니다.



1
2
3
4
= t | s # 합집합
= t & s # 교집합
= t - s # 차집합
= t ^ s # 대칭 차집합
cs





  add()와 update()는 집합에 새로운 아이템을 추가하는데 사용됩니다.



1
2
= add('x')
s.update([103145])
cs




  remove()로 아이템을 제거할 수도 있습니다.







 1-3. 사전(Dictionary)

  사전은 키로 색인되는 객체들을 담는 연관 배열 혹은 해시 테이블입니다. 다음과 같이 값들을 중괄호({})로 둘러싸서 생성합니다.



1
2
3
4
5
stock = {
    "name""Apple",
    "shares"5000,
    "price"1200.50
}
cs

  




  사전의 요소에 접근하려면 다음과 같이 키 색인 연산자를 사용합니다.


1
2
name = stock["name"]
share = stock["shares"]
cs



  사전의 추가 및 수정은 다음과 같이 수행합니다.



1
2
stock["shares"= 500
stock["date"= "December 18, 2015"
cs






  주로 문자열이 키로서 사용되지만, 숫자나 튜플 같은 다른 파이썬 객체도 키로 사용될 수 있습니다. 리스트나 사전과 같이 그 내용이 바뀔 수 있는 객체는 키로 사용할 수 없습니다.


  사전은 순서 구분 없는 데이터를 빠르게 검색하기 위한 용도의 컨테이너로도 사용됩니다. 예를 들어, 다음은 주가를 담는 사전입니다.



1
2
3
4
5
6
7
prices = {
    "SAMSUNG"450.10,
    "LG"13.15,
    "VEGA"20.51,
    "APPLE"985.95
}
 
cs




  빈 사전은 다음 두 가지 방법으로 만들 수 있습니다.



1
2
3
prices = {}
prices = dict()
 
cs




  사전에 어떤 키가 들어 있는지는 다음과 같이 in 연산자로 검사합니다.



1
2
3
4
5
if "APPLE" in prices:
    p = prices["APPLE"]
else:
    p = 0.0
 
cs





  앞에 나온 바로 이 일련의 단계는 다음과 같이 더욱 간결하게 표현할 수 있습니다.



1
2
= prices.get("LG"0.0)
 
cs




  사전의 키 목록을 얻고 싶으면 사전을 리스트로 변환하면 됩니다.


 

1
2
syms = list(prices)
 
cs




  요소를 삭제하는데는 del 문을 사용합니다.


1
2
del prices["LG"]
 
cs





  사전은 파이썬 인터프리터에서 가장 섬세하게 튜닝된 데이터 타입입니다. 따라서, 만약 간단히 데이터를 저장하고 작업을 하려는 것이라면 직접 자신만의 데이터 구조를 만들기 보다는 사전을 사용하는 것이 대부분의 경우 훨씬 낫습니다.














* 이 강좌는 '파이썬 완벽 가이드' 서적을 참고로 작성했습니다.


다른 카테고리의 글 목록

CSE/Python 카테고리의 포스트를 톺아봅니다