행과 열로 이루어진 데이터를 다뤄야 하는 가장 흔한 경우는 DB의 조회 결과를 다루거나 CSV 파일을 다룰 때이다. 이 경우에 각각의 행은 필드값들이 연속된 리스트이며, 전체 데이터 테이블은 개별 행(리스트)이 중첩된 2중 리스트 구조를 갖는다. 하지만 이런 케이스들은 모두 "테이블" 형태의 데이터를 다루고 있다. 즉 대부분의 처리는 각 행 혹은 라인에 대해 반복하면서 특정한 작업을 처리한다. 그러다보니 대부분 그리드 형식의 데이터를 다루는 경우에 아무런 거리낌없이 2중 리스트를 사용하고 있는데, 개인적으로 "테이블" 형식의 데이터가 아닌 단순 그리드에 대해서는 2중 리스트를 사용하는 것을 그리 좋아하지 않는다. 이 글에서는 그리드의 데이터를 단일 리스트를 사용하여 다루는 기법에 대해서 알아보겠다. 그리..
리스트에서 중복된 원소를 제거하려고 하는 상황을 가정해보자. 보통은 이런식의 코드를 생각하기 쉽다. def uniq(aList): result = [] for a in aList: if result.count(a) < 1: result.append(a) return result 임시 리스트를 만들고, 원본 리스트의 각 원소를 순회하면서 임시 리스트에 "들어있지 않다면" 추가하는 작업을 반복하여 임시리스트가 중복을 제거한 리스트를 담도록 하는 것이다. 여기서는 '.count()를 통해서 멤버십 테스트를 하는 부분을in` 연산자로 바꾸면 좀 더 좋은 성능을 (그리고 좀 더 깔끔한 코드를) 얻을 수 있다. 또 다른 방법으로는 리스트 축약을 사용하는 방법이 있다. 별도의 임시 리스트를 만들지 않고 i 번째 원소..
- Total
- Today
- Yesterday
- jupyter-notebook
- leapYear
- python list
- 파이썬노트북
- globals()
- 이중리스트를 사용하지 않기
- 튜플언패킹
- sorted
- 우분투
- 리눅스
- short_circuit
- 리스트
- 단어 빈도수
- 사전
- Python
- 반복자
- Lambda
- 파이썬
- locals()
- 변경가능
- 파일입출력
- iterable
- ipython-notebook
- dict
- 복수기준정렬
- 정렬키
- 정렬기준
- 함수형
- mutability
- 표준입력
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |