파이썬의 기본 자료형 [String, List, Tuple, Dictionary, Set]

2018. 6. 2. 23:07파이썬



'''  파이썬으로 할 수 있는 여러가지 일 '''

파이썬은 시스템 유틸리티를 만드는데 유리 (windows , linux 등의 시스템 명령어들을 이용할 수 있는 각종 도구를 갖추고 있다.)


파이썬을 다른 언어를 이요해 GUI 프로그램을 만드는 것보다 훨씬 더 쉽게 만들 수 있다. 

Tkinter , wxPython, PyQT, PyGTK 와 같은 GUI 모듈 드이 존재한다.


파이썬은 접착성이 좋은 언어이다. C/C++ 언어와 결합해서 사용할 수 있다.


파이썬은 웹 응용 프로그램을 제작하기에 매우 탁월하다.


파이썬은 수치연산에는 적절하지 않다. 수치 연산에는 C언어가 좀 더 적합하나, Numpy 모듈을 이용하면 수치 연산 프로그래밍도 가능하다. ( Numpy 모듈이 C언어로 제작 되었기 때문)


여러 종류의 DB에 접근할 수 있도록 해준다.  피클(pickle) 모듈 : 파이썬에서 사용되는 자료 원형을 그대로 저장하고 불러오는 일




시스템과 밀접한 프로그래밍에는 부적절 ( 방대한 수치 연산, 반복에 취약 )

- 빠른 속도  / 직접적인 하드웨어 관련 프로그램 부적합.


모바일 프로그래밍





1. String




2. List

리스트명 = [ 요소1, 요소2, 요소3, 요소4, .... ] 

리스트는 위와 같이 사용할 수 있다. 리스트의 요소로 정수, 실수, 문자열 모두 가능하며 , 빈 리스트도 생성가능하다.

비어있는 리스트는 list = [  ]   or  a = list()  두 가지 방법으로 생성가능하다.


(1) 리스트의 인덱싱

① 리스트의 마지막 요소 값  a[-1]  : 인덱스 -1은 뒤에서 첫 번째, 즉 리스트의 마지막 요소르 가리킨다.
② 삼중 리스트 인덱싱 
>>> a = [1, 2, [ 'a', 'b', ['Life' , 'is']]] 
>>> a[2][2][0]
>>> 'Life' 


(2) 리스트의 슬라이싱

문자열에서 사용한 슬라이싱과 사용법이 같음.  

>>> a = [1, 2, 3, 4, 5 ]

>>> a[0:2]     // 첫 번째 요소부터 인덱스 2번 전까지 요소를 출력

[1, 2]

(3) 리스트 연산자

① 리스트 더하기 (+)

>>> a = [1, 2, 3]

>>> b = [4, 5, 6]

>>> a + b

[1, 2, ,3 ,4, 5, 6]


② 리스트 반복하기 (*)

>>> a = [1, 2, 3]

>>> a * 3

[1, 2, 3, 1, 2, 3, 1, 2, 3]



(4) 리스트 요소 삭제

① [ ]로 삭제하기

>>> a[1:3] = [ ]   // a[1] ~ a[2] 요소를 삭제함


② del 함수 이용하기

del 함수는 파이썬에서 기본적으로 제공하는 내장 함수이다. 사용법은 ' del 객체명 '이다.

>>> del a[1:3] 


(5) 리스트 관련 함수

- append : 리스트 맨 뒤에 새로운 요소를 추가

>>> a  = [1, 2, 3]

>>> a.append(4)

[1, 2, 3, 4]


- sort : 리스트 요소를 정렬 ( 숫자 크기 순으로 , 알파벳 순으로 )

>>> a = [1, 3, 5, 4]

>>> a.sort()

[1, 3, 4, 5]


- reverse : 리스트를 역순으로 정렬( 주의!! 리스트 순서그대로 뒤집어 질 뿐!  크기 순으로 정렬 되지는 않음. 

>>> a = [1, 3, 5, 4]

>>> a.reverse()

[4, 5, 3, 1]


- index : 리스트에 지정한 값이 있다면, 해당 값의 인덱스 번호를 리턴. 값이 없으면 오류 발생.

>>> a = [1, 2, 3, 4]

>>> a.inex(3)

2


- insert :  a.insert(2, 4)   // 리스트 a에 인덱스2번째 위치에 4를 삽입.


remove :  a.remove(3) // 리스트에서 첫 번재로 나온 3을 제거, 이후에 나오는 3은 제거 되지 않음.


pop :  스택에서 처럼 pop() 은 리스트의 가장 마지막 요소값을 리턴해주고, 리스트에서 삭제한다. 


count :  a.count(1) // 리스트 포함된 1의 개수를 리턴


extend : a.extend(b) // 파라미터로 리스트만! 올 수 있고,  리스트 a 뒤에 리스트 b를 더한다. 




3. Tuple

리스트와 대체로 비슷하다.


※ 리스트와 차이점

① 리스트는 대괄호로 감싸지는데, 튜플은 ( , ) 로 감싸진다.

② 리스트는 요소를 수정할 수 있지만, 튜플은 수정이 불가능하다.

t1 = ()
t2 = (1,)
t3 = (1,2,3)
t4 = 1,2,3,4
t5 = ('a', 'b', ('ab', 'cd'))

튜플은 요소가 하나 뿐이라면 반드시 뒤에 콤마(,)를 찍어주어야 한다. 

또 요소들을 괄호로 감싸지 않아도 상관없다.

요소 값을 변경하거나 지우려고 시도할 시 오류 발생.


수시로 값을 변하는 요소의 집합 : LIST 사용   vs   변화없이 고정된 요소들의 집합: Tuple 사용


(1) 튜플의 인덱싱

>>>t1 = (1, 2, 'a', 'b')
>>>t1[0]
1
>>>t1[3]
'b'

문자열이나 리스트와 사용법은 같다.


(2) 튜플의 슬라이싱

>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:]
(2, 'a', 'b')

(3) 튜플 더하기

>>> t1 + t2

(4) 튜플 곱하기

>>> t2 * 3




4. Dictionary 

이 딕셔너리 자료형은 전에 perl에서 공부했었던 Associative Array ( HASH ) 과 같이 대응 관계를 나타내는 자료형이다.

(관련 게시글 : http://200okdream.tistory.com/86 )

리스트, 튜플처럼 순차적으로 요소값을 구하지 않고, ( 인덱스 번호를 알 필요가 없다. ) 키값을 통해 요소 값에 접근한다.

>>> dic = {'name' : 'pey', 'phone' : '01012345678', 'birth':'1118'}

{키 값 : 요소 값}  과 같은 형태로 딕셔너리를 작성한다.  

요소 값으로 리스트가 들어가 수도 있다.


(1) 딕셔너리 쌍 추가, 삭제

① 추가하기

dic[키값] = 요소값


② 삭제하기

del dic[키값]


③ 딕셔너리 요소값 사용하기

dic[키값]

- 딕셔너리는 요소에 접근하기 위해 키 값을 이요해 추가 및 삭제 작업을 수행한다.

딕셔너리에서 키값은 Unique해야 한다.  중복되는 키값이 존재할 경우 키 값중 어느 하나를 제외하고는 전부 무시되어 버리는 불상사가 발생한다.

(2) 딕셔너리 관련 함수

① Key List 생성하기

>>> dic = { 'name' :'pey', 'phone':'01012345678', 'birth':'1118' } >>> dic.keys() dict_keys(['name', 'phone', 'birth'])

keys() 함수를 사용하면 dict_keys 라는 객체를 반환해준다. 이 객체는 리스트를 사용하는 것과 같지만, 리스트 고유 함수는 사용할 수 없다.


② Value List 생성하기

>>> dic.values()
dict_values(['pey', '01012345678', '1118'])

키를 생성하는 것과 같은 방식이다. dict_values 라는 객체 생성.


③ 쌍 얻기 ( items )

>>>dic.items()
dict_items([('name', 'pey'), ('phone', '01012345678'), ('birth', '1118')])

키값과 벨류 값을 쌍으로 얻어와서 dict_items 객체 생성


④ 쌍 지우기 ( clear )

>>> dic.clear()
>>> a
{}

⑤ 키로 요소값 얻기 

>>> dic.get('name')
'pey'

get('name')함수는 dic['name'] 과 같은 기능을 한다.  다만 전자의 경우 키 값이 없는 경우 오류를 발생시키지만,  후자는 오류 대신 None 을 반환한다. ( None 은 False )

>>> dic.get( 'test', 'default' )
'default'

- get 함수 사용 시딕셔너리 내에 test 라는 키값이 없을 경우 None 대신 , 디폴트로 지정된 값을 반환해 주도록 한다.


⑥ 키 값 존재 유무 조사( in )

>>> dic = {'name':'pey', 'phone':'01012345678', 'birth':'1118' }
>>> 'name' in dic
True
>>> 'email' in dic
False

해당 키값이 딕셔너리에 있으면 True를 , 없으면 False를 반환 . ( Python 3 이전 버전에서는 True, False 대신 1,0 이 반환 )





5. Set





'파이썬' 카테고리의 다른 글

웹 환경에 대한 이해  (0) 2018.07.19
Python Network Programming- Socket Library  (0) 2018.07.11
Vim 으로 파이썬 개발 환경 만들기  (0) 2018.06.13
Pymysql 모듈 사용하기  (0) 2018.06.12
Python Package Management  (0) 2018.06.11