리스트의 기본을 알았다면 이제 조금 쓸만한 명령어(함수)들을 배울 필요가 있다.
파이썬을 배울때 뭐가 제일 도움이 되냐? 라는 질문을 한다면 당연히 공식문서라고 대답할 수 있다.
대부분의 파이썬 책들은 이 공식문서를 바탕으로 나온 것 이다. 많은 핵심 내용들이 들어있다. 파이썬 온라인 튜토리얼은 귀도 반 로썸이 직접 쓴 책이다.(파이썬의 창시자) 한국인들도 파이썬을 많이 쓰기 때문에 이제 한글판도 업데이트가 빠르다! 영어 실력이 되는 사람은 영문판을 읽어도 좋다.
또 Byte of Python 도 좋다. 다른 프로그래밍을 배운 사람이면 하루 정도 따라해보면 파이썬이 뭔지 알수 있을 것이다. 마찬가지로 온라인에서 무료로 열람할 수 있고 PDF도 무료로 배포하고 있다. 한글 번역이 되있어서 어렵지 않다.
* 참고자료 및 교재
이제 참고할 만한 문서들이 준비되었으니 리스트에 대하여 좀 더 알아보자.
리스트에 관련된 함수는
- Python Built in Function
- List 클래스 메소드
- Python Keywords
가 있다. 분류상 이렇게 나눈 것이고 용어에 얽매일 필요는 없다. 자주 쓰는 함수는 자연스럽게 외워진다. 모든 함수를 커버하려는 것은 무의미한 일이다. 프로그래머들은 모든 정보를 다 읽지 않는다. 그럴 시간도 없을테고.
자신에게 필요한 정보가 뭔지 알수있는 능력이 중요하다. 그래서 라이브러리의 시스템에 대해서 알아야 한다. 다행히도 현대 프로그래밍에서는 그렇게 어렵지 않다. 클래스 개념때문이다. 100% 클래스로 운영하는 Java와는 달리 Python 은 함수도 사용한다. 다음에서 리스트와 관련된 주요 함수들을 살펴보자.
내장함수는 파이썬 인터프리터를 시작했을 때 부터 바로 사용할 수 있는 함수기능이다. 가장 기본적인 함수부터 보자.
- print 함수
a = [1,2,3,4,5,6,7]
print(a)
Hello Wolrd를 출력했을 때부터 지금까지 print 함수를 사용해왔다. 리스트 전체를 출력한다.
인덱스와 슬라이스를 같이 사용하면 여러가지 방법으로 출력할 수 있다.
- len 함수
b = [1,3,5,7]
len(b)
리스트가 가진 요소의 길이를 리턴한다. 몇개의 값을 저장하고 있는가를 알 수 있다. for 루프의 인덱스로도 쓰인다.
- list 함수
a = list(range(10))
print(a)
list 함수는 iterable 타입을 리스트형태로 바꿔서 반환한다. iterable 은 이 포스트에서 자세히 다루지 않는다.
지금은 range 함수가 iterable 이라는 것만 알면된다. range는 0부터 9까지 숫자를 차례로 꺼낸다. 숫자만 꺼내는 것이지 리스트 형으로 만든 것은 아니다. list 는 이런 iterable 타입을 리스트 자료형으로 변환시켜 준다.
- min, max 함수
a = [ 100,2,50,32,74,5,7,121]
min(a)
max(a)
min (리스트) 요소중에 최소값을 리턴한다
max (리스트) 요소중에 최대값을 리턴한다
- sorted 함수
a = [ 10,50,20,40,10,50,40,80,90]
sorted(a)
sorted 로 숫자를 오름차순으로 정렬한다. 정렬한 요소를 반환할 뿐 리스트의 값을 바꾸지는 않으니 주의한다.
- sum 함수
a = [ 10,50,20,40,10,50,40,80,90]
sum(a)
리스트 요소들의 합을 구한다.
리스트 클래스의 메소드이다. 아까 빌트인 메소드들은 다른 자료형에도 해당하는 함수들인데, 클래스 메소드는 전용 메소드이다.
- append 함수
a = [1,2]
a.append(3)
a.append([4,5,6])
요소를 추가한다. a.append 는 a 도트연산 append 이다. 결국 리스트형은 List 라는 파이썬의 기본 참조형(클래스)의 인스턴스인 것이다. 도트 연산자로 메소드(클래스의 함수)를 호출한다. 파이썬의 모든 자료형은 클래스로 되어 있다. 상수 리터럴들도 클래스로 이미 파이썬 인터프리터에 로드되어 있다. 그래서 사용자가 클래스를 만들지 않아도 처음부터 사용할 수 있다.
- insert, extend
a = [1,2]
a.insert(0,3)
a.extend(range(3))
insert는 위치에 요소를 추가한다. 0이 첫번재 위치이다. extend는 iterable 형을 끝에 추가한다.
- pop 함수
a = [3, 1, 2, 0, 1, 2]
a.pop()
pop 스택처럼 리스트의 마지막 요소를 꺼내고 삭제한다. append 와 같이 스택으로 사용할 수 있다.
- clear 함수
리스트의 요소를 모두 삭제한다.
- reverse 함수
a = [1,2,3,4,5,6,7]
a.reverse
요소들의 순서를 거꾸로 바꾼다.
키워드는 파이썬의 예약어이다. 예약어(Keyword)는 파이썬이 먼저 사용하도록 예약한 단어들이다. 유저가 사용할 수 없는 키워드이다.
- del 함수
요소를 삭제한다. 인덱스를 지정할 수 있고 전체를 삭제할 수도 있다.
a = [1,2,3,4,5,6,7]
del a[0]
del a[2]
del a
이것들은 일부일 뿐이고 리스트 관련 함수들은 더 많다. 워낙 라이브러리가 방대해서 필요할 때 찾을 수 있는 환경을 갖추는게 좋다. 어떤 메소드로 할 수 있는 것을 다른 방법으로도 할 수 있다는 것을 주의하자. 사실 선택이 많아서 좋을 수도 아니면 선택을 못하거나 알아야 할 것이 많아져서 나쁠 수도 있다. 어떤 코드를 선택할 것인가는 각자의 스타일에 달린 문제기도 하다.
1. 빌트인 함수 링크
2. 리스트 클래스 메소드
3. 파이썬 키워드