함수를 재사용하지 않는다면 lambda를 사용한다.
* .sort => 데이터 분석을 할 때에는 권고사항 X
* sorted => 데이터 분석을 할 때 권장
* 정렬기준은 key에 할당한다.
예시 함수
def 함수(value):
return [value[1] - value[0], (value[0], value[1])]
s = [1, 3, 4, 8, 13, 17, 20]
list(map(함수, zip(s, s[1:])))
sorted(list(map(함수, zip(s, s[1:]))), key=lambda x:x[0])
결론: 빌트인 함수를 하나씩 듣어보자
참조: https://docs.python.org/3/library/functions.html
아래의 스니펫은 변수명 재선언이 아니라 변수를 복사하여 새로 추가하는 일이므로, 공간복잡도가 O(n) 증가한다.
s = [1, 2, 3, 4, 5]
ss = s[:]
class Car:
maxSpeed = 100
maxPeople = 6
def start(self):
print('출발하였습니다.')
return
def stop(self):
print('출발하였습니다.')
return
k3 = Car()
k5 = Car()
k7 = Car()
# Car.start() -> 자동차 공장을 출발시키기
k3.start()
k3.append('경고등')
class Stack:
def __init__(self): # 최초에 인스턴스가 생성되었을 때
print('인스턴스가 생성되었습니다.')
# 형태 예시
d = None
c = [37, d]
b = [99, c]
a = [12, b]
연결리스트 = {
'head' : {
'value': 22,
'next': {
'value' : 2,
'next' : {
'value' : 90,
'next' : {
'value' : 77,
'next' : None
}
}
}
}
}
위를 출력하는 스니펫 및 결과는 아래와 같다.
연결리스트['head']['next']['next']['value']
------ output ------
90
두번째 예시
연결리스트 ={
'head': None
}
# node마다 value값 지정, next값 미지정
node1 = {'value': 90, 'next': None}
node2 = {'value': 2, 'next': None}
node3 = {'value': 37, 'next': None}
node4 = {'value': 35, 'next': None}
node5 = {'value': 21, 'next': None}
# node의 next값을 다음 node로 연속되게 할당
연결리스트['head'] = node1
node1['next'] = node2
node2['next'] = node3
node3['next'] = node4
node4['next'] = node5
--- 참조 ---
페이지 교체 알고리즘: https://dailylifeofdeveloper.tistory.com/355
코드 메모리: https://lsjsj92.tistory.com/604
다익스트라: https://m.blog.naver.com/ndb796/221234424646
클래스, 인스턴스: https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html