1장 잘못된 방식으로 순환하기 __1.1 (드물지만) 순환을 위해 목록 생성하기 __1.2 색인을 순환하는 대신 enumerate( ) 사용하기 __1.3 dict.items( )가 필요할 경우 dict.keys( )로 순환하지 않기 __1.4 순환 중 객체 변형__1.5 while 순환보다 for 순환 사용하기 __1.6 ‘순환과 절반’을 위한 바다코끼리 연산자__1.7 zip( )으로 다중 반복 가능 객체 간소화하기 __1.8 zip(strict=True)과 itertools.zip_longest( ) __1.9 정리 2장 동등성과 동일성의 혼동 __2.1 클로저의 늦은 연결 __2.2 불리언 논리 값에 대한 지나친 검증 __2.3 x == None 비교하기 __2.4 가변 기본 매개 변수에 대한 오해 ____2.4.1 첫 번째 방법, 클래스 사용하기____2.4.2 두 번째 방법, None 보초 값 사용하기 ____2.4.3 세 번째 방법, 상태 생성기의 이점 이용하기 __2.5 가변 객체에 대한 복사 대 참조 __2.6 (재사용이 있는 상황에서) is와 == 혼동하기 __2.7 정리 3장 파이썬의 여러 가지 함정 __3.1 이름 지정 ____3.1.1 표준 라이브러리 모듈과 동일한 파일 이름 사용하기____3.1.2 import * 사용 피하기 ____3.1.3 비어 있거나 지나치게 일반적인 except 문 __3.2 단순 문자열 연결의 2차 시간 복잡도 __3.3 파일을 열 때 상황 정보 관리자 사용하기____3.3.1 첫 번째 위험____3.3.2 두 번째 위험 ____3.3.3 취약성 수정하기__3.4 .sort( )와 sorted( )의 선택적 매개 변수 key__3.5 불확실한 키에는 dict.get( ) 사용하기 __3.6 정리 4장 파이썬 고급 활용 __4.1 type(x) == type(y) 비교하기 __4.2 (다시 한번) 이름 지정 ____4.2.1 내장 이름의 재정의 ____4.2.2 보호된 속성에 직접 접근하기 __4.3 사용 빈도가 낮은 기능에 주목하기 ____4.3.1 f 문자열 디버깅 ____4.3.2 가공자의 우아한 마법 ____4.3.3 itertools (충분히) 사용하기 ____4.3.4 more-itertools 제3자 라이브러리 __4.4 자료형 주석은 실행 시간 자료형이 아니다 ____4.4.1 자료형 주석은 실행 시간 제약이 아니다 ____4.4.2 typing.NewType()을 실행 시간 자료형으로 오해하기 __4.5 정리 5장 할 수 있다고 해서 해야 한다는 뜻은 아니다 __5.1 메타클래스 __5.2 원숭이 패치 __5.3 읽기 메서드와 설정 메서드__5.4 허락보다 용서받는 것이 더 쉽다 __5.5 구조적 패턴 대조 __5.6 정규 표현식과 재앙적 역추적 __5.7 정리6장 적절한 데이터 구조 선택하기 __6.1 collections.defaultdict__6.2 collections.Counter____6.2.1 해결책 ____6.2.2 잘못 __6.3 collections.deque ____6.3.1 해결책 ____6.3.2 잘못 __6.4 collections.ChainMap ____6.4.1 해결책 ____6.4.2 잘못 __6.5 데이터 클래스와 명명된 튜플 ____6.5.1 명명된 튜플 사용하기____6.5.2 정적과 동적____6.5.3 데이터 클래스 __6.6 효과적인 구상 연속 순서열 __6.7 정리 7장 데이터 구조의 잘못된 사용 __7.1 반복된 목록 탐색의 2차 시간 복잡도__7.2 목록 중간에서 요소를 제거하거나 추가하기____7.2.1 좀 더 효율적인 데이터 구조__7.3 문자열은 문자열의 반복 가능한 객체 집합 __7.4 상수를 사용하는 대신 enum을 (자주) 사용하기 __7.5 많이 알려지지 않은 사전 메서드 익히기 ____7.5.1 객체를 정의하는 사전 ____7.5.2 정기적으로 발생하는 잘못으로 돌아가기 __7.6 JSON과 파이썬은 서로 깔끔하게 변환되지 않는다 ____7.6.1 JSON에 대한 몇 가지 배경 ____7.6.2 왕복에 실패하는 데이터__7.7 자신만의 데이터 구조 만들기 ____7.7.1 자신만의 것을 만드는 것이 나쁜 생각일 때 ____7.7.2 자신만의 것을 만드는 것이 좋은 생각일 때 ____7.7.3 핵심 요약 __7.8 정리 8장 보안__8.1 무작위성의 종류 ____8.1.1 암호학적 무작위성을 위해 secrets 사용하기____8.1.2 재현 가능한 무작위 분포 __8.2 ‘안전한’ 소스 코드에 비밀번호나 기타 비밀 정보 넣기 __8.3 ‘자신만의’ 보안 기제 만들기__8.4 마이크로 서비스에 SSL/TLS 사용하기__8.5 제3자 라이브러리 requests 사용하기 __8.6 데이터베이스 API를 사용하지 않을 경우의 SQL 주입 공격 __8.7 안전하다는 가정을 확인하기 위해 assert 사용하지 않기 __8.8 정리 9장 파이썬에서의 수치 계산__9.1 IEEE-754 부동 소수점 숫자 이해하기____9.1.1 NaN(그리고 다른 부동 소수점 숫자)을 비교하기 ____9.1.2 NaN과 statistics.median() ____9.1.3 부동 소수점 숫자의 순진한 사용: 결합법칙과 분배법칙____9.1.4 부동 소수점 숫자의 순진한 사용: 입자성__9.2 숫자 자료형 ____9.2.1 금융 계산에 부동 소수점 숫자를 사용하지 않기____9.2.2 수치 데이터 자료형의 비직관적인 동작 __9.3 정리 부록 다른 책에서 읽을 만한 주제__A.1 테스트 주도 개발__A.2 동시성 __A.3 패키징__A.4 자료형 검사__A.5 수치 및 데이터프레임 라이브러리 찾아보기 파이썬 코딩의 기술 51가지 찾아보기