본문 바로가기

Programming/Python46

filter(), map() filter() filter(function, list)는 시퀀스의 항목들 중 함수조건이 참(True)인 항목만 추출해 구선된 시퀀스를 반환한다 >>> def f(x): return x%2 != 0 and x%3 != 0 >>> f(33) False >>> f(17) True >>> list(filter(f, range(2, 25))) [5, 7, 11, 13, 17, 19, 23] # 상동. list(), filter() 대신 사용 >>> r = [f(x) for x in range(2, 25)] [5, 7, 11, 13, 17, 19, 23] map() map(function, list)는 시퀀스의 모든 항목에 함수를 적용한 결과리스트를 반환한다 >>> def cube(x): return x*x*x .. 2020. 10. 5.
generator, iterator, yield python에서 generator는 interator를 작성하는 편리한 방법이다 호출자가 메서드를 호출할 때, return 은 반환값을 반환하고 메서드를 종료한 후, 호출자에게 제어를 반환한다 yield 는 각 반화값을 호출자에게 반환하고, 반환값이 모두 소진되었을 때에만 메서드가 종료된다 generator 제너레이터는 파이썬의 시퀀스를 생성하는 객체다 전체 시퀀스를 한 번에 메모리에 생성하고 정렬할 필요엾이, 잠재적으로 아주 큰 시퀀스를 순회할 수 있다 제너레이터를 순회할 때마다 마지막으로 호출된 요소를 기억하고 다음 값을 반환한다 def fib_generator(): a, b = 0, 1 while True: yield b a, b = b, a+b if __name__ = "__main__": fg .. 2020. 9. 30.
False - 거짓 python에서 다음은 False에 해당한다 bool False object None int 0 str "" list [] duple () dict {} >>> this_false = None or 0 or '' or [] or () or {} or False >>> this_false False 2020. 9. 28.
input(), sys.stdin - 코딩테스트 시 입력받기 외부 입력을 받을 때, 코딩테스트 시 초기값 받을 때 많이 사용 input()은 사용편리, 속도는 sys.stdin.realine()이 빠름 입력값이 크거나 많다면, sys.stdin.realine()을 사용하는 걸 추천 data = list(map(str, input().split())) #data = [str(c) for c in input().split()] # 위라인과 같음 import sys data1 = list(map(str, sys.stdin.readline().rstrip())) #data1 = [str(c) for c in sys.stdin.readline().rstrip()] # 위라인과 같음 1 2 3 4 5 6 7 8 9 0 >>> data ['1', '2', '3', '4', '.. 2020. 9. 24.
byte-compiled code - python compiler가 사용하는 byte-compiled code는 표준모듈을 많이 사용하는 프로그램의 로딩시간을 줄여준다 -O flag를 사용하여 인터프리터를 호출하면 최적화된 코드가 생성되어 .pyc 파일에 저장된다 라이브러리로 배포하는 데에도 사용할 수 있다 $ python -O file.py $ ls file.py file.pyc $ python -h ... 생략 ... -O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x -OO : remove doc-strings in addition to the -O optimizations ... 생략 ... 2020. 9. 22.
package - 패키지 package 는 module과 __init__.py 파일이 있는 디렉토리다 python은 __init__.py 파일이 있는 디렉토리를 package로 취급한다 __init__.py 파일은 빈파일일 수도 있지만, package의 초기화 코드를 실행하거나, __all__변수를 정의할 수도 있다 __all__ = ["python_file1", ...] # 파일이름에 '.py' 가 붙지않음 실제파일이름은 python_file1.py 이다, 여기서 작성할 때는 .py를 붙이지 않는다 |-- package1 | |-- __init__.py | |-- file1.py 2020/09/18 - [Programming/Python] - module - 모듈 module - 모듈 python 에서 module 은 def .. 2020. 9. 21.
module - 모듈 python 에서 module 은 def를 사용하여 정의한다 def가 실행되면, 함수의 객체와 참조가 같이 생성된다 return값을 설정하지 않으면 python은 자동으로 None을 반환한다 C 언어와 같이, 아무런 값을 반환하지 않는 함수는 procedure(프로시저)라고 부른다 함수가 호출될 때마다 active record(활성화 레코드)가 생성된다 활성화 레코드에는 함수의 정보가 기록되며, 이를 stack에 저장한다함수의 정보 (반환값, 매개변수, 지역변수, 반환주소) 모듈생성 시 주의점 - 모듈의 기본값 모듈을 생성할 때, 함수 또는 매서드에서 가변객체를 기본값으로 사용하면 안된다 # 나쁜 예 def method(number, number_list=[]): number_list.append(num.. 2020. 9. 18.
setdefault() - dictionary의 키 존재 상관없이 setdefault() dict타입의 키 존재 여부를 모른 채 접근할 수 있다 A.setdefault(key, default) collections.defaultdict을 활용할 수 도 있다, 초기화시 default값을 넣어준다 A = defaultdict(list) @print_method def usual_dict(dict_data): """ dict[key]. """ newdata = {} for k, v in dict_data: if k in newdata: newdata[k].append(v) else: newdata[k] = [v] return newdata @print_method def setdefault_dict(dict_data): """ setdefault() method. """ n.. 2020. 9. 17.
Reverse list - 리스트 역순으로 list의 reverse 방법은 list.reverse(), reversed(list), list[::-1], [list.pop() for _ in list] 가 있다 더 있으면 리플달아주세요. 속도는 아래 순이다 list.reverse() < list[::-1] < reversed(list) < [list.pop() for _ in list] l=list(range(2000000)) fidx=1999999 @print_method def use_reverse(): tl = l[:] tl.reverse() print(tl[fidx]) @print_method def use_reversed(): # list를 새로 만든다 tl = l[:] tl = list(reversed(tl)) print(tl[fidx.. 2020. 9. 16.