python

TIL230321 Python 자료구조

베스트오버 2023. 3. 21.

자료구조

 

리스트

리스트명 = [value1, balue2 ...]

list.append(x)

리스트의 끝에 항목을 더합니다. a[len(a):] = [x] 와 동등합니다.

list.extend(iterable)

리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장합니다. a[len(a):] = iterable 와 동등합니다.

list.insert(i, x)

주어진 위치에 항목을 삽입합니다. 첫 번째 인자는 삽입되는 요소가 갖게 될 인덱스입니다. 그래서 a.insert(0, x) 는 리스트의 처음에 삽입하고, a.insert(len(a), x)  a.append(x) 와 동등합니다.

list.remove(x)

리스트에서 값이 x 와 같은 첫 번째 항목을 삭제합니다. 그런 항목이 없으면 ValueError를 일으킵니다.

list.pop([i])

리스트에서 주어진 위치에 있는 항목을 삭제하고, 그 항목을 돌려줍니다. 인덱스를 지정하지 않으면, a.pop() 은 리스트의 마지막 항목을 삭제하고 돌려줍니다. (메서드 시그니처에서 i 를 둘러싼 대괄호는 매개변수가 선택적임을 나타냅니다. 그 위치에 대괄호를 입력해야 한다는 뜻이 아닙니다. 이 표기법은 파이썬 라이브러리 레퍼런스에서 지주 등장합니다.)

list.clear()

리스트의 모든 항목을 삭제합니다. del a[:] 와 동등합니다.

list.index(x[, start[, end]])

리스트에 있는 항목 중 값이 x 와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려줍니다. 그런 항목이 없으면 ValueError 를 일으킵니다.

선택적인 인자 start  end 는 슬라이스 표기법처럼 해석되고, 검색을 리스트의 특별한 서브 시퀀스로 제한하는 데 사용됩니다. 돌려주는 인덱스는 start 인자가 아니라 전체 시퀀스의 시작을 기준으로 합니다.

list.count(x)

리스트에서 x 가 등장하는 횟수를 돌려줍니다.

list.sort(*, key=None, reverse=False)

리스트의 항목들을 제자리에서 정렬합니다 (인자들은 정렬 커스터마이제이션에 사용될 수 있습니다. 설명은 sorted() 를 보세요).

list.reverse()

리스트의 요소들을 제자리에서 뒤집습니다.

list.copy()

리스트의 얕은 사본을 돌려줍니다. a[:] 와 동등합니다.

 

딕셔너리

  • 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다.
딕셔너리명 = {Key1:Value1, Key2:Value2, Key3:Value3, ...}

튜플

  • 리스트는 요소 값의 생성, 삭제, 수정이 가능하지만 튜플은 요소 값을 바꿀 수 없다.
튜플명 = (1, 3, 'a', ('ab', 'cd'))

집합

s1 = set([1,2,3])
>>> {1, 2, 3}

s2 = set("world")
>>> {'w', 'o', 'r', 'l', 'd'}
s1 = set([1, 2, 3, 4, 5])
s2 = set([4, 5, 6, 7, 8])

# 교집합
s1 & s2		# s1.intersection(s2)도 같은 결과
# {4, 5}

# 합집합
s1 | s2		# s1.union(s2), s2.union(s1)도 같은 결과
# {1, 2, 3, 4, 5, 6, 7, 8}

# 차집합
s1 - s2		# s1.difference(s2)
# {1, 2, 3}

s2 - s1		# s2.difference(s1)
# {6, 7, 8} 

# 집합의 길이 (len)
len(s1)
# 5

# 값 1개 추가하기 (add)
s1 = set([1, 2, 3, 4, 5])
s1.add(6)
# {1, 2, 3, 4, 5, 6}

# 값 여러 개 추가하기 (update)
s1 = set([1, 2, 3, 4, 5])
s1.update([6, 7, 8])
# {1, 2, 3, 4, 5, 6, 7, 8}

# 특정 값 제거하기 (remove)
s1 = set([1, 2, 3, 4, 5])
s1.remove(3)
# {1, 2, 4, 5}

# 특정 값 제거하기2 (discard)_오류 없는
s1 = set([1, 2, 3, 4, 5])
s1.discard(3)
# {1, 2, 4, 5}
s1.discard(6)		# 오류 없음
# {1, 2, 4, 5}

# 임의의 값 제거하기 (pop)
s1 = set([1, 2, 3, 4, 5])
s1.pop()
# {1, 2, 4, 5}		# 랜덤된 값 제거

# 모든 원소를 지우고 공집합으로 만들기 (clear)
s1 = set([1, 2, 3, 4, 5])
s1.clear()
# set()

# 값 있는지
1 in s1
# True
6 in s1
# False

# 값 없는지
1 in s1
# False
6 in s1
# True

길이 구하기

len(): 길이 구하는 함수

len(리스트명)
len(튜플명)
len(집합명)

데이터 타입

type(): 데이터 타입을 확인할 수 있는 함수

댓글