본문 바로가기

python

enumerate 파이썬 알고리즘 인터뷰 p.85 enumerate란?여러 가지 자료형(list, set, tuple...)을 인덱스를 포함한 enumerate 객체로 리턴하는 함수다.위와 같이 list()로 반환된 결과를 추출할 수 있다. 두 방법 모두 리스트 a의 인덱스와 값을 공백을 사이에 두고 출력한다는 점은 같지만, 코드가 효율면에서나 보기에 깔끔하지 않다.출력 결과는 세 코드 모두 동일하다.   처음엔 C언어의 enum 타입이랑 헷갈렸었다.이름은 같은데 쓰임이 전혀 달라서 enumerate의 동작 방식이 잘 와닿지 않았다.그래서 그런가 사실 enumerate은 쓸 생각을 잘 못 한다.아직 실력이 부족한거겠지만...함수를 적재적소에 잘 활용할 수 있도록 노력해야겠다. 더보기
제너레이터(Generator) 파이썬 알고리즘 인터뷰 p.81   제너레이터란?루프의 반복을 제어할 수 있는 루틴 형태를 말한다.예) 1억 개의 숫자를 생성해서 계산하는 프로그램에서, 제너레이터가 없으면 메모리에 1억 개의 숫자를 저장해놓아야 한다. -> 하지만 제너레이터가 있으면? 제너레이터만 생성해놨다가 필요할 때 언제든 숫자를 만들어낼 수 있다.함수를 작성하는 건 동일하지만, return 대신 yield를 사용한다.generator 함수 안에 있는 while문이 종료 조건이 없어서, n은 계속 증가하며 숫자를 생성한다. yield는 return과 달라서,yield가 있는 지점까지 계산한 결과를 반환한 후에 return처럼 함수가 중단되는 것이 아니라 이후의 코드까지 실행된다.yield로 반환하는 사이의 print문이 실행되고, .. 더보기
파이썬 기초 파이썬 알고리즘 인터뷰 p.78 네이밍 컨벤션파이썬은 변수명을 짓는 네이밍 컨벤션으로 스네이크 케이스를 따른다.반면, 자바는 카멜 케이스를 채택한다. 스네이크 케이스는 각 단어를 언더스코어(_)로 구분하는 것이고,카멜 케이스는 첫 단어의 시작 문자는 소문자로 표기하고, 뒤에 나오는 단어의 첫 문자를 대문자로 표현하는 것이다.카멜 케이스(Camel Case)camelCase: int = 1스네이크 케이스(Snake Case)snake_case: int = 1  프로젝트 때 자바로 개발하면서 변수명을 선언할 때, 이름을 어떻게 지을까 하다가 내가 "그냥 언더바 넣으면 되지 않아요?" 했다가 이상한 사람 취급을 받은 기억이 있다.카멜 케이스랑 스네이크 케이스가 있는 것만 알았지, 언어별로 채택하는 네이밍 컨벤.. 더보기