1. 리스트
- 튜플과는 대조적으로 리스트는 크기나 내용의 변경이 가능하다. 리스트는 대괄호 []나 list 함수를 사용해서 생성할 수 있다.
리스트는 위와 같이 []를 이용하여 생성할 수 있다. 또한 리스트 안의 값을 인덱스로 불러와 재 지정, 즉 리스트의 크기나 내용의 변경이 가능하다.
- 리스트 함수는 이터레이터나 제너레이터 표현에 실제 값을 모두 담기 위한 용도로 자주 사용된다.
- append 메서드를 사용해서 리스트 끝에 새로운 값을 추가할 수 있다.
- insert 메서드를 사용해서 리스트의 특정 위치에 값을 추가할 수 있다.
값을 추가하려는 위치는 0부터 리스티 길이까지의 값이어야 한다.
** insert는 append에 비해 연산비용이 많이 든다. insert로 값을 추가하면 추가된 위치 이후의 원소들은 새로 추가될 원소를 위해 내부적으로 옮겨야 하기 때문이다.
- insert 메서드와 반대 개념으로 pop 메서드가 있다. pop 메서드는 특정 위치의 값을 반환하고 해당 값을 리스트에서 삭제한다.
위에서 보면 2번 인덱스에 'u'라는 string이 있는데 pop을 사용해서 값을 뽑아내고 리스트에서 제외 시킨다.
- remove 메서드를 이용해서 원소를 삭제할 수 있는데 삭제를 리스트에서 제일 앞에 위한 값부터 이루어진다.
위의 코드를 보면 중복되는 'banana' 두개가 존재하는 것을 볼 수 있는데 이 때 remove를 사용하여 'banana'를 제거할 경우 리스트 앞에 있는 'banana'부터 제거된다.
- in 예약어를 사용해서 리스트에 어떤 값이 있는지 검사할 수 있다.
- not 예약어를 사용해서 in 예약어를 반대 의미로 사용할 수도 있다.
리스트에 어떤 값이 있는지 검사하는 것은 리스트의 모든 값을 일일이 검사해야 하므로 많이 느리다는 단점이 있다.
- 튜플과 마찬가지로 + 연산자를 이용하면 두 개의 리스트를 합칠 수 있다.
- 리스트를 미리 정의했다면 extend 메서드를 사용해서 여러 개의 값을 추가할 수 있다.
리스트를 이어붙이면 새로운 리스트를 생성하고 값을 복사하게 되므로 상대적으로 연산비용이 크다.
- sort 함수를 이용해서 새로운 리스트를 생성하지 않고 있는 그대로 리스트를 정렬할 수 있다.
sort는 편의를 위해 몇 가지 옵션을 제공한다. 그 중 하나는 정렬 기준으로 사용할 값을 반환하는 함수이다.
예를 들어 다음과 같이 문자열이 들어 있는 리스트를 문자열의 길이 순으로 정렬할 수 있다.
'IT > Python' 카테고리의 다른 글
파이썬의 자료구조 - 튜플편 (0) | 2020.07.30 |
---|---|
Python 객체의 자기관찰 (0) | 2020.07.30 |
파이썬 커뮤니티 (0) | 2020.07.30 |