본문 바로가기
CS/algorithm

List, Dictionary 활용 잘하기

by simplify-len 2021. 2. 5.

 파이썬은 자바와 달리 유연한 개발을 할수 있게 해준다.

대표적으로 List의 슬라이싱, collections 패키지의 depue, defaultdict, Counter 등.

유연한 개발을 하기 위한 도구를 학습을 해보자.

리스트

아래와 같은 리스트를 선언할 수 있다.

a = list()
len(a) - 전체 요소 개수 리턴

a[i] - 인덱스 i의 요소

a[i:j] - i부터 j까지 슬라이스의 길이만큼 k개의 요소 가져온다.
**이때 주의해야 될 점은 i 인덱스부터 j-1 까지의 인덱스를 가져온다.

elem in a - elem 요소가 존재하는지 확인한다. 처음부터 순차 탐색

a.count(elem) - elem 요소의 개수를 리턴

a.index(elem) - elem 요소의 인덱스를 리턴

a.append(elem) - 리스트의 마지막에 elem 요소 추가

a.pop() 리스트 마지막 요소 추출

a.pop(0) 리스트 첫번째 요소 추출

del a[i] - 특정 요소 리스트에서 삭제

a.sort() - 팀소트로 정렬

min(a), max(a) 최솟값/ 최댓값 게산

a.reverse() 뒤집기.

----

a = [1,2,3]
a.insert(3,5)
> [1,2,3,5,4]

---

a.append('안녕')
a.append(True)
a

> [1,2,3,5,4, '안녕', True]

---
list 에서 요소를 삭제하는 방법
 1. 인덱스로 삭제
 > del a[1]
 [1,3,5,4, '안녕', True]
 
 2. 값으로 삭제
 > a.remove(3)
 [1,5,4,'안녕',True]

 

 

딕셔너리

Java의 HashMap과 유사하다.

b = dict()
len(a) - 요소 개수 리턴
a[key] - 키를 조회, 값을 리턴
a[key] = value - 키/값을 삽입
key in a - 딕셔너리에 키가 존재하는지 확인

 

딕셔너리 모듈로서, defaultdict, Counter, OrderDict  이 존재한다.

defaultdict

 존재하지 않는 키를 조회할 경우, 에러 메세지를 출력하는 대신 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성.

a = collections.defaultdict(int)
a['A'] = 5
a['B'] = 4

a
> defaultdict(<class 'int'>, {'A':5, 'B':4})

Counter

a = [1,2,3,4,5,5,5,6,6,]
b = collections.Counter(a)
b
Counter({5:3,6:2,1:1,2:1,4:1})

b.most_common(2)
# 가장 빈도수가 높은 2가지는?
[(5,3), (6,2)]

 

댓글