Post

[Python method] Python 자료구조 함수

List 적용 메소드/ Hash-Table 적용 메소드

[Python method] Python 자료구조 함수

List 관련 함수


sorted 함수 vs sorted 함수

sorted(정렬할 데이터, key 파라미터, reverse 파라미터)

sorted 함수는 파이썬 내장 함수이다.
첫 번째 매개변수로 들어온 이터러블한 데이터를 새로운 정렬된 리스트로 만들어서 반환해 주는 함수이다.

  • 첫 번째 매개변수로 들어올 “정렬할 데이터”는 iterable(요소를 하나씩 차례로 반환 가능한 object) 한 데이터 이어야 합니다.

아래 옵션(파라미터)은 다 기본값으로 들어가 있기 때문에 sorted(정렬 데이터)만 넣어도 충분합니다.

  • key 파라미터: sorted 함수의 key 파라미터는 어떤 것을 기준으로 정렬할 것인가? 에 대한 기준이다. 즉, key 값을 기준으로 비교를 하여 정렬을 하겠다는 것인데, 이것을 정해 줄 수 있는 파라미터이다. sorted( ~~ , key=)로 입력하게 되면 해당 키를 기준으로 정렬하여 반환한다.

  • reverse 파라미터: 해당 파라미터를 이용하면 오름차순으로 정렬할지 내림차순으로 정렬할지 정할 수 있다. 디폴트로는 reverse=False로 오름차순으로 정렬이 된다.sorted( ~~ , reverse=True)로 입력하게 되면 내림차순으로 정렬하여 반환한다.

1
2
3
4
# sorted() 정렬
a = [2, 4, 1, 9, 100, 29, 40, 10]
b = sorted(a)   # 오름차순 정렬
c = sorted(a, reverse=True)   # 내림차순 정렬

List.sort()

List.sort(reverse 파라미터)

list.sort() 메서드는 list 객체 자체를 정렬해주는 함수이며 리스트에만 사용이 가능하다. list 객체의 멤버 함수, 즉 메서드입니다.

list.sort() 함수는 기본적으로 리스트를 오름차순으로 정렬해주는 기능을 합니다.

1
2
3
4
# sort() 정렬
list_num = [33, 2, 81, -77, 44, 1, 10, 99, 5, 0, -2]
list_num.sort()   # 오름차순 정렬
b.sort(reverse=False)   # 내림차순 정렬

sorted( ) vs sort( )
새로운 정렬된 리스트를 반환하는 함수는 sorted 함수이고, 리스트 자체를 정렬시켜버리는 것은 sort 함수입니다.

pop( ) vs popleft( )

pop( )은 동적 배열로 구성된 리스트에서 맨 뒤 아이템을 가져오는 건 적합하지만, 맨 앞 아이템을 가져오기 적합한 자료형이 아니다. 그 이유는 첫 번째 값을 꺼내오면 모든 값이 한 칸씩 시프팅되며, 시간 복잡도가 O(n)이 발생된다.

popleft( )은 데크 자료형에 사용되는 함수이며 파이썬에서 데크는 이중 연결리스트로 구성되었기 때문에 시간 복잡도가 O(1)로 실행된다.

1
2
3
4
5
q = collections.deque()
q.appendleft('e')   # 왼쪽에 데이터 삽입
q.append('r')     # 오른쪽에 데이터 삽입
q.popleft()   # 왼쪽 데이터 제거
q.pop()   # 오른쪽 데이터 제거

Set 관련 함수


set.add(item)

  • item을 추가(중복되면 item 추가를 하지 않음)

set.remove(item)

  • item에 해당하는 원소를 제거하고, 없으면 KeyError 발생

set.discard(item)

  • item에 해당하는 원소를 제거하고, 없어도 에러발생하지 않음

Hash Table 관련 함수


get() 함수의 작동 방식

hash_table.get(key, default)

  • key: 값을 찾고자 하는 키
    • 키가 사전에 있는 경우: 해당하는 값을 반환
    • 키가 사전에 없는 경우: default 값이 지정되어 있으면 해당 값을 반환하고 default 값이 생략되면 None을 반환
  • default: 키가 사전에 없을 경우 반환할 기본값 (생략 가능)
1
2
3
4
5
6
7
8
my_dict = {"apple": 1, "banana": 2}

# 키가 사전에 있는 경우
value1 = my_dict.get("apple")  # 1 반환

# 키가 사전에 없는 경우
value2 = my_dict.get("grape", 0)  # 0 반환 (기본값 지정)
value3 = my_dict.get("grape")  # None 반환 (기본값 생략)
This post is licensed under CC BY 4.0 by the author.