파이썬에 있는 모든 것들은 객체이다.
객체를 찍어내려면 클래스가 존재해야 한다.
리스트 - 수정가능하다.
인덱스를 쓰려면 칸마다 사이즈가 같아야 한다.
칸에는 주소가 들어가기 때문에 변수형이 달라도 상관없다.
차원: 주머니 감싸져있다.
1. 열거형 enumerate(lst)
enumerate는 클래스로 리스트를 바드면 값에 대한 인덱스를 각각 꺼내어 오는 기능을 한다.
메소드는 객체가 가지고 있는 기능이다.
for문은 '차원내리기'로 주머니를 하나씩 여는 역할을 하여 개별적으로 하나씩 열 수 있다.
즉 저차원에서 하나씩 데이터를 꺼내올 수 있다.
index(값)은 중복된 값에 대한 인덱스를 알기 어렵다. (앞의 인덱스 값만 나옴)
하지만 enumerate는 각 인덱스에 대응하는 값을 묶어서 내보낸다.
특정 값에 대한 인덱스를 추출하여 새 리스트에 저장
리스트(lst) 내부에 내가 찾으려는 값(data1)이 총 몇 개 있는지 확인 가능
자기가 가지고 있는 값만 출력한다. (call by value)
print: 객체가 가지고 있는 string 값을 출력한다.
하지만 실질적으로는 주소를 출력한다.
따라서 아래처럼 enumerate 클래스로 찍은 객체의 주소가 출력된다.
딕셔너리처럼 나오게 된다.
for i,j in enumerate(lst): # 인덱스와 값 대응해서 출력
이 형태로 많이 쓴다.
리스트의 여러 기능
append는 덩어리를 값으로 인식, 덩어리가 하나의 값이 되기도 함.
expend는 무조건 구조를 받아 차원을 한단계씩 내려서 받는다. 개별체로 나눔
→ 덱이랑 큐의 원리를 알 수 있다.
2. 튜플
리스트와 다 똑같지만 immutable(수정 불가)하다는 점에서 리스트와 다르다.
따라서
count(값)
index(값)
만 존재한다.
원본을 유지하고 싶을 때 리스트 대신 튜플을 사용한다.
리스트와 달리 내부에 주소 서칭은 존재하지만 수정은 불가능하다.
리스트처럼 순서가 있어서 인덱스로 접근 가능하다.
* 연산자
자료형이 같아야 한다.
우선순위 대로 실행한다.
() 보다 ,가 중요하다. 괄호는 생략가능하다.
lst = 1,
로 선언한다.
3. 딕셔너리
리스트 튜플과 달리 인덱스가 없고 key 값과 value가 있다. 즉 키로 접근한다.
같은 키에 대한 값이 저장되면 나중에 입력한 값으로 저장된다.
즉, 값은 중복될 수 있지만, 키가 중복되면 마지막 값으로 갱신된다.
{ } 를 이용해서 만든다.
리스트와 딕셔너리로 접근하는 방법은 차이가 있다.
인덱스 = 상대주소 이므로 위치는 정해져있다.
리스트는 해당 인덱스에 해당하는 공간을 미리 만들고 값을 넣어야
하지만 딕셔너리는 미리 장소에 대한 내용을 미리 만들지 않아도 값을 넣을 수 있다.
즉 딕셔너리는 변수처럼 데이터를 넣는 동시에 공간을 만든다.
* 코딩테스트의 자동차 문제
append로 리스트에 추가할 수 있지만
딕셔너리를 이용하여 자동차 값을 넣는 것이 더 편하다.
딕셔너리의 메소드
키-값 를 아이템이라고 한다.
update(값): 주로 완성된 딕셔너리에서 사용하며 값을 추가한다.
fromkeys(iter,값) : 주로 초기 생성시 사용
get(키[,값]) : 아이템을 얻어낸다.
keys() : 모든 키 가져옴
values() : 모든 값 가져옴
items() : 모든 키-값 을 가져옴, 튜플로 반환(바뀌면 안되니까)
pop(키) : 키를 통해 값을 꺼내고 삭제함
popitem() : 키-값 을 튜프로 꺼내고 삭제함
clear() : 모두 삭제
키 값의 순서는 없다. 대신 처음과 끝만 있을 뿐이다.
'Programming Language > Python' 카테고리의 다른 글
[파이썬] DAY4 메모리 (0) | 2022.01.19 |
---|---|
[파이썬] DAY3 함수 (0) | 2022.01.18 |
[파이썬] DAY2 리스트 (0) | 2022.01.17 |
[파이썬] DAY2 반복문 (0) | 2022.01.17 |
[파이썬] DAY2 지난 시간 복습 (0) | 2022.01.17 |