목차

pageinfo
status
Draft

Python

개요

자료형

Dict

OrderedDict

기존 Dict 대비 딕셔너리 아이템의 순서를 보장하기 위해 만들어진 자료형이며, collections 모듈에서 임포트한다. 다만 파이썬 3.6부터 기본 Dict 자료형도 순서 보장이 되므로 굳이 쓸 필요는 없다. 현재 시점에서 유일한 효용가치는 딕셔너리 객체 간의 순서 일치성을 비교할 필요가 있을 때 뿐이다(Dict는 순서에 무관하게 키-값 조합이 모두 존재하면 동일한 객체라고 판단한다).

연산자

언패킹 연산자

어떤 함수에 여러 인수를 넣어야 할 경우, 만약 리스트 내의 항목을 사용하고자 할 경우 일일이 넣는 대신 *를 사용할 수 있다. 예를 들어:

num_list = [1,2,3,4,5]
print(num_list[0], num_list[1], num_list[2], num_list[3], num_list[4])
# 1 2 3 4 5

위 코드를 언패킹 연산자로 구현하면 다음과 같이 간단해진다.

num_list=[1,2,3,4,5]
print(*num_list)
# 1 2 3 4 5

혹은 여러 변수를 동시에 언패킹해도 된다.

num_list=[1,2,3,4,5]
num_list2=[6,7,8,9,0]
print(*num_list, *num_list2)
# 1 2 3 4 5 6 7 8 9 0

이를 응용하면 여러 리스트를 하나로 합치거나,

list3 = [*num_list, *num_list2]
# [1,2,3,4,5,6,7,8,9,0]

변수를 쪼갤 때 '나머지' 항목을 몰아서 할당하는 것도 가능하다.

myname = 'James'
first, *middle, last = myname
# first: J, last: s, middle: ame

딕셔너리의 경우에는 ** 연산자를 사용하여 동일한 기능을 구현할 수 있다.

num_dict = {'a': 1, 'b': 2, 'c': 3}
num_dict2 = {'d': 4, 'e': 5, 'f': 6}
 
new_dict = {**num_dict, **num_dict2}
# {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}

numpy

Numpy는 내장 list 대비 꽤나 빠른 실행 속도를 보이는 것으로 알려져 있다. 이는 C++로 작성된 코어의 성능이 더 빠르기 때문이다(참고: Exploring NumPy: Features & Performance Vs Lists | by Ayman Hamed | Stackademic).


Backlinks