Container
파이썬에 존재하는 내장된 container type 은 List, DIctionary, Set, Tuple이 있다.
https://docs.python.org/3.5/tutorial/datastructures.html#more-on-lists
List
( 위의 링크를 보면 리스트로 스택, 큐 둘다 사용 가능.)
파이썬에서의 List는 Array와 같지만 Linked-list처럼 resizable 하다.
거기에다가 다른 종류의 element를 넣을 수 있다고 한다.
index에 -가 있다. 하.. 무근본언어 인가;;
arr[n]이면
arr[-n)]이 가능하다. -1을 하면 맨 뒤의 index를 가져온다.
revese 를 통해서 list 내용 뒤집기, count를 통해서 list 내 같은 element의 개수 sort pop 등 여러가지 메소드가 많으니 저길 참고하면 된다.
list를 그대로 출력하면 '[' 까지 그대로 나오는것이 신기하다.
다른 타입을 저장 할 수 있는것도 신기하다.
List slicing
리스트의 원소 a부터 b-1 까지 접근하게 해주는 문법 [a:b]
slicing : list의 원소 하나에도 접근 할 수 있지만 원소의 특정 원소부터 원소까지 접근할 수 있게 해주는 문법.
비어있는 list를 a = list() 처럼 생성할 수 있다.
a = [3,5,6,7] 처럼 직접 지정할 수도 있지만, a = list()를 이용해서 비어있는 리스트를 생성할 수 있다.
추후 numpy에서 다시 다루게 될 것이라고 되어있다.
List loop
https://docs.python.org/3.5/library/functions.html#enumerate
enumerate가 설명에 등장하는데 여길 참고하면 된다.
list 를 쭉 읽으면서 index랑 value를 같이 반환해준다.
이렇게 C의 느낌으로 print로 찍을수도 있고, list에 pair처럼 출력할수도 있다.
List Comprehension (LC)
좀 더 쉽게 list를 만드는 방법
--자꾸 for문을 쓰고나서 ' : ' 을 안쓴다. 버릇을 들여야한다.
빈 배열을 만들고 append를 통해서 제곱한 값을 계속 더해나가는 코드이다.
이걸 한줄로 표현 가능하다.
문법은 [ expression for 'index name' in 'array name' ] 으로 표현하면 된다.
저렇게 append 대신에 [ i ** 2 for i in ex] 로 한번에 표현했다.
Dictionary
(key, value)를 pair로 저장하는것, Java의 Map과 유사.
list 처럼 [] 대괄호가 아닌 {} 중괄호를 사용한다!!
key값으로 접근할땐 [] 다시 대괄호를 사용한다.
get 함수로 받아올 수 있다. 없으면 없다는 말을 출력할수도 있다.
내 생각엔 get을 쓰는게 좀 더 안전해 보인다.
이런식으로 for문으로도 사용할 수 있다.
items() method를 이용해서 key 와 value 동시에 접근 가능하다.
for names,types로 하면 name에 key값이 들어가버리니 주의해야한다.
Dictionary Comprehension (DC)
좀 더 쉽게 Dictionary를 만드는 방법
List Comprehension과 다른점은 {} 중괄호를 쓴다는점과 key : value 의 형태라서 : 가 들어간다는 점이다.
Set
Unordered , Mutable
순서가 없으며 각 원소는 unique하다.
Dictionary처럼 중괄호를 사용하지만 key는 따로 없다. value만 존재.
get으로 보려고 하니까 get함수가 없다고 나온다.
array.add("value")를 통해서 추가하고, array.remove("value")를 통해서 삭제한다.
Set Comprehension (SC)
좀 더 쉽게 Set을 만드는 방법
0~29 까지 루트를 씌우면 중복값을 제거하고 int로 형변환을 했을때 0~5까지 나오게 된다.
Dictionary와 문법은 똑같은 수준이다. key값이 없어서 : 만 없을뿐..
Tuple
list와 비슷하지만 다른..
A tuple is an (immutable) ordered list of values.
위의 내용은 튜플의 정이이다.
순서가 있는(변하지않는) 값들의 리스트이다.
일단 변하지 않는다는 것부터 list와 다르고, dictionary의 key값이나 set의 elements로 쓰일 수 있다.
아래 예시를 보자.
0~9까지 자동으로 생성된 숫자에서
{ (0,1) : 0, (1,2) : 1, ~~ }
이런 dictionary를 생성하는 코드이다. DC를 이용해서 생성했다.
저렇게 key값으로 이용할 때 사용이 가능하다.
key값이 변하지 않고, ordered 이다.
ordered에 변하지 않으므로 key값으로 쓰일 수 있다 로 이해하는게 좋겠다.
==============
하다가 말도안되는 오류가 날때가 있다.
ex)
a = 3
print(type(a))
이게 에러로 나오는 경우가 있는데.. 그럴땐 kernel을 restart 하면 해결이 된다.
이유도 모르고 계속 틀려서 화만 났었는데 .. 다행이다
===END
blog.naver.com/rbals0445/222203709435
이곳을 들어가면 좀더 깔끔한 정리를 볼 수 있다.
'컴퓨터 > Python' 카테고리의 다른 글
[Python] 기초 문법 -3 function, class, self 의미 (0) | 2021.01.17 |
---|---|
[Python] 기초 문법 -1 Number,Boolean,Strings (0) | 2021.01.11 |