리스트와 튜플은 거의 비슷하게 생겼다.
리스트 : a = [1,2,3] -> 리스트는 대괄호
튜플 : b = (1,2,3) -> 튜플은 소괄호
리스트는 appand()해서 계속 추가할 수 있었다.
하지만 튜플은 고정되어 있다.
<리스트와 다른 튜플의 특징>
1. 소괄호를 사용
2. 변경 불가능 (길이와 값이 고정되어 있음.) @@@ 중요!! @@@
튜플
변하면 안되는 값을 쓸 때 튜플을 사용한다.
추가, 삭제, 변경은 지원하지 않지만 인덱싱과 슬라이싱 기능은 지원한다.
더하기, 곱하기도 가능.
(3,) 괄호와 ,가 꼭 있어야 한다.
딕셔너리
루비에서는 Hash로, 자바에서는 Map, 자바스크립트에서는 Object, JSON 형식이 딕셔너리 형태이다.
(연관 배열(Associative array) 또는 해시(Hash)라고도 부름.)
리스트로 쭉 보는게 아니라 키를 가지고 사전 검색을 하듯이 값을 볼 수 있다.
(Key를 통해 Value를 얻는다. 순서는 없고 key와 value만 있을 뿐!)
API에 자주 활용된다.
-> 어떤 요청을 보냈을 때 서버에서 응답이 오는게 JSON 형태로 많이 들어온다.
딕셔너리 기본 형태
dic = {'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118'}
- 딕셔너리 쌍 추가하기 -> 새로운 키를 할당할 수 있다.
- 딕셔너리 요소 삭제하기 -> del 함수 사용 -> del a[1], 여기서 1은 키임.
- 딕셔너리 만들 때 주의할 사항 : 키로 찾아야 하기 때문에 키가 중복되면 안된다. (값은 중복 가능)
- @Key 리스트 만들기 (key) -> 키들만 따로 뽑아줌 a.keys()
- @Value 리스트 만들기 (values) -> 값들만 따로 뽑아줌 a.values()
- @key, value 쌍 얻기 (items) -> a.items() 전체를 새로운 배열안에 튜플 형태로 각각 키,값 쌍을 담을 수 있다.
- Key : Value 쌍 모두 지우기 (clear)
- 해당 key가 딕셔너리 안에 있는지 조사 (in) -> 'name' in a 했을 때 name(키)이 a안에 있으면 True 반환.
- key 사용해 Value 얻기 (get) ->get은 없는 값을 다룰 때 유용하게 사용가능하다.
get은 에러가 안나고 None이라는 값이 나옴.
집합 set
집합의 특징은 다들 아시죠~~?
집합의 핵심 : 중복된 요소를 가질 수 없다. (원소 각각이 유일함)
-> 중복을 허용하지 않는다.
-> 순서가 없다. (Unordered)
<집합 정의>
s1 = set([1,2,3]) 은 1,2,3이라는 값을 가진 집합.
s1 = {1,2,3} 이렇게 써도 동일함.
+추가적인 예제
- 문자열을 set으로 감싸면 순서가 없고 중복이 허용되지 않는 형태로 나온다.
교집합 -> a&b 을 쓰거나 a.intersection(b) 사용.
합집합 -> a | b 을 쓰거나 a.union(b) 사용.
차집합 -> a - b 를 쓰거나 a.difference(b) 사용.
- 값 1개 추가하기 (add)
- 값 여러개 추가하기 (update)
- 특정 값 제거하기 (remove) -> a.remove(2)
불 boolean
-> 참(True), 거짓(False)
- 문자형 자료형 = 참
다시 보는 변수
어떤 값을 실제로 컴퓨터에서 처리할 때 메모리에 올리다음에 메모리에서 연산을 수행한다.
그래서 메모리에서 실제 값을 저장하는 것이다.
이런 메모리에 주소가 있다.
변수에는 주소가 있어서 a를 불러왔을 때 주소에 해당하는 메모리에서 값을 불러오는 것이다.
* 파이썬에서 사용하는 변수는 객체를 가리키는 것이다.
ex) a = 3
- 3이라는 값을 가지는 정수 자료형(객체)이 자동으로 메모리에 생성
- 변수 a는 객체가 저장된 메모리의 위치를 가리키는 레퍼런스(reference)
- a라는 변수는 3이라는 정수형 객체를 가리키고 있다.
값이 실제로 어떻게 돌아가는지를 아래 사이트에서 직접 확인이 가능하다!
시각적으로 제공한다.
pythontutor.com/live.html#mode=edit
Live Programming Mode - Python Tutor - Visualize Python and JavaScript code
Write code in Python 2.7 Python 3.6 JavaScript ES6 Someone is typing ... << First < Prev Next > Last >> Submit
pythontutor.com
(아래에 render all objects on the heap (Python) 선택하기!)
+추가적인 예제1
- 주소값을 확인 ( id(a) )
- 같은 주소인지를 확인 (a is b)
근데 여기서 a는 바꾸고 b는 그대로 두고 싶을 때 슬라이싱을 사용한다.
-> 즉, 슬라이싱하면 새로운 [1,2,3]이라는 리스트가 생겨서 그걸 넣는 것이다. (복사가 된 것)
a와 b의 id값(주소)은 다를 것이다.
+또는 밖에 있는 라이브러리를 가져오는 방법도 있다.
from copy import copy
a = [1,2,3]
b = copy(a) 이렇게 복사를 할 수도 있음.
+ 변수 한꺼번에 여러개도 선언 가능.
+ a=b='hello' -> a와 b에 똑같은 값을 넣을 때 사용.
+a에 있는 값과 b에 있는 값을 서로 바꾸고 싶을 때 tmp (와 이거 개쩐다) 값이 바뀌어서 나옴.
'Python > Python Study' 카테고리의 다른 글
파이썬 추가적인 개념 - 2 (1) | 2021.01.14 |
---|---|
파이썬 추가적인 개념 - 1 (0) | 2021.01.09 |
파이썬 입출력 (0) | 2021.01.09 |
파이썬 제어문 (0) | 2020.12.28 |
파이썬 자료형-1 (1) | 2020.12.27 |