일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 알고리즘
- GRU
- tensorflow
- 딥러닝
- effective python
- 파이썬
- python
- 하둡2
- 그래프이론
- hadoop2
- graph
- 주식분석
- 코딩더매트릭스
- yarn
- hive
- recursion
- C언어
- C
- 하이브
- LSTM
- collections
- NumPy
- codingthematrix
- RNN
- Java
- Sort
- scrapy
- 텐서플로
- HelloWorld
- 선형대수
- Today
- Total
목록Python/Effective Python (9)
EXCELSIOR
BETTER WAY 8 - 리스트 컴프리헨션에서 표현식을 두 개 넘게 쓰지 말자Item08 - Avoid More Than Two Expressions in List Comprehensions리스트 컴프리헨션은 기본 사용법(Better Way 7 참고) 뿐만 아니라 다중 루프도 지원한다.# matrix를 리스트 하나로 표현하기 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flat = [x for row in matrix for x in row] # 왼쪽에서 오른쪽 순으로 실행 print(flat) [1, 2, 3, 4, 5, 6, 7, 8, 9] # matrix의 각 행(셀)의 제곱을 구하기 squared = [[x**2 for x in row] for row in mat..
BETTER WAY 7 - map과 filter 대신 리스트 컴프리헨션을 사용하자Item07 - Use List Comprehensions Instead of map and filterPython에서는 한 리스트에서 다른 리스트를 만들어내는 간결한 문법이 있다. 바로 리스트 컴프리헨션(list comprehension) 이라고 한다.12345678# List Comprehension을 이용해 루프를 돌면서 # 아래와 같이 계산이 가능하다.a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]squares = [x**2 for x in a]print(squares)'''출력결과[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]'''Colored by Color Scriptercs..
BETTER WAY 6 - 한 슬라이스에 start, end, stride를 함께 쓰지 말자Item06 - Avoid Using start, end, and stride in a Single Slice Python에는 기본 슬라이싱 Better Way 5 참고 뿐만 아니라 somelist[start:end:stride]처럼 슬라이스의 간격(stride)를 설정하는 문법도 있다. stride를 이용하면 시퀀스를 슬라이스 할 때 nn번째 아이템을 가져올 수 있다. 1234567891011# 예를 들어, 스트라이드를 이용하면 리스트에서 홀수와 짝수 인덱스를 쉽게 구분하여 가져올 수 있다.a = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']odds = a[::..
BETTER WAY 5 - 시퀀스를 슬라이스하는 방법을 알자Item05 - Know How to Slice Sequences Python은 시퀀스를 슬라이스(slice: 자르기)해서 조각으로 만드는 문법을 제공한다.이렇게 슬라이스를 이용하면 시퀀스(sequence)의 부분집합(subset)에 접근할 수 있다.list, str, bytes에서 슬라이스를 이용할 수 있다.Slicing 문법은 somelist[start:end] 이며, start인덱스는 포함되고 end인덱스는 제외된다.1234567891011a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] print('First four:', a[:4])print('Last four:', a[-4:])print('Middle t..
BETTER WAY 4 - 복잡한 표현식 대신 헬퍼(Helper) 함수를 작성하자Item04 - Write Helper Functions Instead of Complex Expressions 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960# ex) URL에서 쿼리 문자열을 decode 하는 경우# - 각 쿼리 문자열 파라미터는 정수 값을 표현from urllib.parse import parse_qs # dictionary 형태로 반환my_values = parse_qs('red=5&blue=0&green=', keep_blank_values=True)..
BETTER WAY 03 - bytes, str, unicode의 차이점을 알자Item03 - Know the Differences Between bytes, str, and unicode Python3 에서는 bytes와 str 두 가지 타입으로 문자 시퀀스를 나타냄bytes 인스턴스는 로(raw) 8비트 값을 저장함str 인스턴스는 Unicode(유니코드, 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준) 문자를 저장함Unicode 문자를 Binary data(8-bit)로 표현하는 방법 중 가장 대표적인 인코딩은 UTF-8이 있음UTF-8: 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나이며, Universal Coded Character Set Transfo..
BETTER WAY 02 - PEP 8 스타일 가이드를 따르자Item02 - Follow the PEP 8 Style Guide PEP 8 이란?Python Enhancement Proposal #8 의 약어Python 코드를 어떻게 구성할지 알려주는 스타일 가이드일관성 있는 스타일을 사용하면 유지보수가 더욱 쉬워지고 가독성도 높아짐https://www.python.org/dev/peps/pep-0008/ 에서 전체 가이드를 확인할 수 있음 반드시 따라야 하는 규칙들 1. WhitespacePython에서 공백은 문법적으로 의미가 있다. 코드의 명료성 때문에 Whitespace에 민감하다.탭이 아닌 스페이스로 들여쓴다. 탭도 되던데...문법적으로 의미있는 들여쓰기(indenting)는 스페이스 네 개를 ..
BETTER WAY 01 - 사용 중인 파이썬의 버전을 알자Item01 - Know Which Version of Python You're Using 1import thiscs The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. A..