본문 바로가기

코딩 연습/코딩배우기164

[python] 객체처럼 다뤄지는 함수, 그리고 이름 없는 함수, 람다(lambda) ■ 파이썬은 모든 것을 객체로 처리한다. def say(): print('hello~') print(type(say)) # 함수도 function 이라는 클래스 print(type(10)) # # 파이썬에서는 정수도 실수도 객체이고, 함수도 객체이다. def caller(f): # 함수가 객체이기 때문에 caller 함수에 매개변수로 전달 f() # caller 함수 호출 시, 매개변수인 함수 say 실행 caller(say) # hello~ # 함수 내 함수를 만들어서 반환 def func(n): def exp(x): # 함수 내에서 정의된 함수 return x ** n return exp # 함수를 반환 f1 = func(3) # f1 == exp(x) res = f1(5) # exp(5)와 동일 p.. 2020. 8. 19.
[python] 변경 가능한 객체(mutable), 변경 불가능한 객체(immutable) - #2 # 리스트에 대해 sort() 함수 실행 시 원본 변경 여부 def list_sort(r): r.sort() # 원본 리스트를 참조변수 r에 대입한 것과 동일 print('r :', r) print(id(lst1), id(r), id(lst1)==id(r), sep=' : ') # 주소값 동일 lst1 = [4, 2, 6, 12, 9] list_sort(lst1) print('lst1 : ', lst1) # 원본 리스트값 변경됨 print('\n# 원본 리스트값 변경 안되게 하려면,') def list_sort2(r): r = list(r) # 참조변수 r에 새 리스트 생성 후 다시 할당, r.copy() 또는 r = r[:] 도 가능 r.sort() print('r :', r) # 새로운 리스트 sor.. 2020. 8. 15.
[Python] 파이썬 list, tuple, dict, set의 스페셜 메서드 정리 ■ 파이썬의 리스트(list), 튜플(tuple), 딕셔너리(dict), 세트(set)의 스페셜 메서드 정리 ※ 각 타입별 dir() 결과 정리 스페셜메서드 list tuple dict set __add__ L T __and__ S __class__ L T D S __contains__ L T D S __delattr__ L T D S __delitem__ L D __dir__ L T D S __doc__ L T D S __eq__ L T D S __format__ L T D S __ge__ L T D S __getattribute__ L T D S __getitem__ L T D __getnewargs__ T __gt__ L T D S __hash__ L T D S __iadd__ L __iand__ .. 2020. 8. 12.
[python] 변경 가능한 객체(mutable), 변경 불가능한 객체(immutable) - #1 변경 가능한 객체(mutable)인 리스트와 변경 불가능한 객체(immutable)인 튜플의 차이점 # 같은 변수일 경우, 리스트와 튜플의 차이 lst = [1, 2] print('lst:',id(lst)) lst += [3, 4] print('lst:',id(lst)) # 참조(주소)값이 같다 tu = (1, 2) print('tu:',id(tu)) tu += (3, 4) print('tu:',id(tu)) # 참조(주소)값이 다름 (새로운 튜플 생성) print('\n====== 리스트 ============') # 원본 값을 변경시킴(변경 가능한 객체(리스트)) def add_lst(x, y): x += y print('id(x) == id(x + y) :', id(x) == id(x + y)) #.. 2020. 8. 12.