Super Kawaii Cute Cat Kaoani

Python/Python Study

파이썬 자료형-2

zozni 2020. 12. 27. 23:23
728x90
반응형
SMALL

리스트와 튜플은 거의 비슷하게 생겼다.

리스트 : 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'}

 

출력값은 22

 

- 딕셔너리 쌍 추가하기 -> 새로운 키를 할당할 수 있다.

출력결과 {1: 'a', 'name': '영준'}

- 딕셔너리 요소 삭제하기 -> 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 (와 이거 개쩐다) 값이 바뀌어서 나옴.

이게 tmp 구현한거.......와우...

728x90
반응형
LIST

'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