Point_Sec_0320
리스트,튜플,딕셔너리,집합,참거짓,변수 본문
파이썬의 자료형
이번 파이썬 주제는 저번시간 숫자형과 문자열에 이어서 자료형에 대해서 알아보자.
* 리스트 자료형
- 리스트를 만들 때는 대괄호[] 로 감싸주고 각 요소값들은 쉼표로 구분한다.
- 요소가 없는 빈 리스트도 존재가능
- 리스트 요소는 숫자, 문자열, 혼용, 리스트자체도 가능하다.
* 리스트 생김새
- a=[1,2,3] b=[] c=['ab','cd','ef'] ...
* 리스트 인덱싱과 슬라이싱
- a[0] <- a 리스트의 첫번째 요소 (0부터 시작이다.)
- a[0] + a[1] = 3 <- 리스트의 첫번째 요소 + 두번째 요소
- 삼중리스트 ex) a=[1,2,['a','b',['life','is']]]
- 다시 한번, 슬라이싱은 '나눈다' 라는 점 인식
- a= [1,2,3,4,5] , b=[:2] <- [1,2] , c= [2:] <- [3,4,5]
- 중첩된 리스트에서 슬라이싱 : a=[1,2,3,['a','b'],4,5] 에서 b= [2:4] <- [3,['a','b'],4]
- 위의 a리스트에서 c= [3][:2] <- ['a','b']
* 리스트 연산자
- 리스트 더하기(+) : 2개의 리스트를 합치는 기능
- 리스트 반복하기(*) : 리스트를 여러번 반복하기
- 리스트 수정할 때 a[1:2]와 a[1]을 수정하는 것은 서로 다르다. 가리키는 값은 같지만 앞에 값은 범위를 나타내고, 뒤의 값은 리스트의 요소를 나타낸다.( 예제로 확인 )
- 리스트 요소를 삭제하는 방법은 두가지로 나타낸다. []를 사용하거나 del함수를 사용하기 (예제로 확인)
* 리스트 관련함수들
- 리스트의 요소 추가(append)
- 리스트 정렬 ( sort )
- 리스트 뒤집기 (reverse)
- 리스트 요소 위치반환(index)
- 리스트 요소 삽입(insert)
- 리스트 요소 제거(remove)
- 리스트 요소 꺼내기(pop)
# 리스트 연산자, 관련함수
* 튜플 자료형
- 리스트와 유사한 형태
- 중괄호()로 둘러싸여 있다.
- 리스트는 그 값을 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
- 특징 중 하나가 요소가 1개일 때 , 요소 다음에 (,)를 붙인다.
- 튜플에도 인덱싱, 슬라이싱, 더하기, 곱하기가 가능하다.
- 문자열 또한 튜플이다. 즉, 괄호()를 생략해도 괜찮다.
# 튜플예제
* 딕셔너리 자료형
- 다른언어의 연관 배열 or 해시와 같은 자료형형태
- key와 value값을 한 쌍으로 가지고 있다.
- 기본 형태는 {key1:value1, key2:value2, key3:value3 ...}이다.
- 딕셔너리는 순서가 존재하지 않기 때문에 추가되는 key가 꼭 이전의 key뒤에 와야되는 것은 아니다.
- key값에는 문자열이나 숫자가 올 수 있고, value값에는 문자열, 숫자, 리스트가 올 수 있다.
- 요소를 삭제할 때 del 리스트변수[key]를 하게되면 key에 해당하는 한 쌍이 지워진다.
- 딕셔너리는 순서없이 각자의 특징을 표현하기에 제일 사용하기 좋다.
- 딕셔너리는 인덱싱이나 슬라이싱 기법을 이용하지 않고 무조건 key값을 이용하여 value값을 얻어내는 방법이다.
- 리스트에서의 a[1]과 딕셔너리에서의 a[1]은 의미가 다르다. 리스트의 경우는 두번째 요소를, 딕셔너리의 경우 key인 1에 대응하는 value값을 매칭한다.
- 주의 사항 : 중복되는 key값을 사용하지 말 것, 왜냐하면 동일한 key값이 존재하면 어떤 key의 value값을 불러와야 하는지 컴퓨터는 알 지 못한다.
- 또한 딕셔너리의 key값으로 리스트를 사용할 수 없다. key로 쓰려면 그 값은 변하면 안되기 때문( 튜플은 key로 사용 가능)
* 딕셔너리 관련 함수들
- key리스트 만들기( keys )
- value 리스트 만들기(values)
- key, value 쌍얻기( items )
- key : value 쌍 모두 지우기( clear )
- key로 value 얻기( get )
- key가 딕셔너리 안에 있는지 조사하기
# 딕셔너리 예제
* 집합 자료형
- 집합은 set을 이용하여 만들 수 있다.
- set() 안에는 리스트를 이용하여 만들거나 문자열도 가능하다.
- 집합은 중복x 순서x다.( 고로 인덱싱이나 슬라이싱이 불가능하다.)
- 집합은 (수학에서 배운 것처럼) 교집합(intersaction,&) 합집합(union,|) 차집합(difference,-)가 있다.
* 집합 자료형 관련함수들
- 값 1개추가하기 (add)
- 값 여러개 추가하기 (update)
- 특정 값 지우기 (remove)
#집합 자료형 예제
* 자료형의 참과 거짓
- 문자열, 리스트, 튜플, 딕셔너리 등등의 값이 비어있다면 그 자료형은 거짓이다.
- 당연히 반대로 값들이 존재한다면 그 자료형은 참이다.
- 단 숫자에서는 0이 거짓, None이라는 값은 거짓을 의미한다.( none은 나중에 다뤄보자)
* 참과 거짓은 어디서 제일 사용하는가?
- 바로 조건식에서 많이 사용된다. 좀 더 깊게 얘기하자면 알고리즘에 많이 사용된다.
- while 조건, if 조건 등등
* 자료형 저장 공간 -> 변수
- 파이썬의 특이한 형태인 자료형 없이 변수를 선언할 수 있다는 특징이 있다.
- JAVA/C를 먼저 접한 사람들의 이해를 돕기 위해
java/c : (int, String/char* , char, float ....)변수이름 = 10; 이런식으로 선언하는 반면
python : (자료형없이)변수이름 =10 이런식으로 선언한다.
- 파이썬에서의 변수는 객체를 가리키는 것이다. 정확히 표현하자면 a=3에서 a는 3이라는 정수형객체가 저장된 메모리 위치를 가리키는 레퍼런스다.
즉, 레퍼런스다 a는. 3이 저장된 객체를 가리키는.
- 이해를 더욱 쉽게 하자면 a=3,b=3,c=3일 때, a,b,c는 같은 메모리주소를 가지게 된다.
- 지금까지의 예제에서 변수를 계속 써왔기 때문에 예제를 따로 보여주지 않는다.
* 리스트를 변수에 넣고 복사할 때
- a=[1,2,3]
b=a
b >>> [1,2,3]
a[1]=4 로 바꾸면 b는 어떻게 될까?
a>>> [1,4,3] b>>>[1,4,3]이 된다.( java/c와는 또 다른점)
이는 위의 변수 설명을 보면 이해가 쉽다. 같은 객체를 가리키는 메모리주소라는 점 잊지말자.
- 그렇다면 위에서 a만 변하게 하고 싶다면 어떻게 할가?
b=a에서 b=a[:]로 바꾼다. 즉 복사하고자 하는 변수 뒤에 ( [:] )를 붙인다.
그러면 a >>> [1,4,3] b >>>[1,2,3]이 된다.
- 또 다른 방법은 copy 모듈을 이용한다.
모듈 사용 방법은 from copy import copy
b= copy(a)를 하면 첫번째 방법과 같은 결과가 나온다.
##
지금까지 파이썬의 자료형을 공부했다. 사실 프로그래밍 언어 대부분의 형태가 다른 점이 크게 없기 때문에 접하기 어렵지 않았을 것이다.( 필자의 경험에 의하면 ) 다음 게시글은 함수, 제어문, 입출력들을 다룰텐데 이 또한 다른 언어들과는 다른점이 거의 없다. 하지만 그냥 넘어가버리면 약간의 차이 때문에 시간을 낭비하지 않도록 천천히 전체적으로 다 둘러볼 것을 필자는 추천한다. 그럼 다음시간에 봅시다.
##
다른 고수님들의 피드백은 필자에게 매~우 감사한 일입니다. 댓글로 피드백, 질문 모두 받겠습니다. 감사합니다.
'python' 카테고리의 다른 글
파이썬 마지막 간단한 예제, 정규표현식, xml (0) | 2017.12.12 |
---|---|
파이썬 클래스,모듈,패키지,내/외장함수 (0) | 2017.04.05 |
파이썬_ 제어문,함수,입출력 (0) | 2017.04.04 |
파이썬이란 무엇인가?, 파이썬의 기초,자료형 (0) | 2017.04.03 |