All about Python/심화

리스트 메서드(Method)의 활용

① 리스트에서 사용할 수 있는 메서드(Method)는 다음과 같다.

메서드 설명
.append() 추가하고자 하는 요소를 리스트의 끝 부분에 추가해 준다.
.clear() 리스트에 있는 모든 요소를 제거해 빈 리스트만 남게 한다.
.copy() 리스트를 통째로 복사해서 반환한다.
.count() 리스트에 특정 x가 몇 개 있는 지 조사하여 그 값을 반환한다.
.extend() 리스트와 리스트를 이어 붙여준다.
.index() 찾고자 하는 x의 인덱스를 반환한다.
.insert() x를 y번째 인덱스에 추가해준다.
.pop() 리스트의 특정 인덱스의 요소를 삭제한다.
.remove() 첫 번째로 나오는 특정 x를 리스트에서 삭제한다.
.reserve() 리스트의 순서를 뒤집는다.
.sort() 리스트를 순서대로 정렬한다.

② 다음은 리스트에 항목을 추가 및 확장해주는 메서드에 대한 설명이다.

  ㉠ .append(), .insert(), .extend() 메서드를 이용해 기존의 리스트에 항목을 추가할 수 있다.

  ㉡ .append()는 추가하고자 하는 요소를 리스트의 끝 부분에 추가해준다.

 

  ㉢ .insert()는 요소를 해당 인덱스에 추가해준다.

 

    ⓐ .append()와 .insert()는 유사하지만, .append()는 리스트의 특정 위치에 추가할 수 없다는 차이가 있다.

  ㉣ .insert() 의 경우 범위를 초과하는 인덱스를 입력할 경우, 리스트의 인덱스가 연속되도록 조정된다.

 

  ㉤ .extend()는 기존의 리스트에 다른 리스트를 이어 붙여준다.

 

    ⓐ extend()는 리스트 또는 튜플만 이어 붙일 수 있다.

  ㉥ 덧셈 연산자(+)와 곱셈 연산자(*)를 이용해 리스트를 확장할 수 있다.

 

③ 다음은 리스트에 항목을 제거해주는 메서드에 대한 설명이다.

  ㉠ .pop(), .remove(), .clear() 메서드를 이용해 기존의 리스트에 항목을 제거할 수 있다.

  ㉡ .pop()는 리스트의 특정 인덱스의 값을 삭제하고 리턴한다.

 

    ⓐ 괄호 속 매개변수가 생략되엉 있으면 .pop()는 리스트의 오른쪽 끝 요소를 삭제함과 동시에 리턴한다.

 

  ㉢ .remove()는 리스트에서 임의의 요소를 삭제한다. 중복될 경우 첫 번째로 등장한 특정 요소를 삭제한다.

 

    ⓐ .remove()를 사용할 때 삭제하고자 하는 값이 리스트 내에 없으면 오류가 발생한다.

 

  ㉣ clear() 메서드는 리스트에 있는 모든 요소를 제거해 빈 리스트만 남게 한다.

 

  ㉤ del 키워드는 리스트에 있는 특정 인덱스의 값을 삭제할 수 있다.

    ⓐ 인덱스를 지정하지 않으면 리스트 전체를 삭제한다.

    ⓑ del 키워드와 remove()는 비슷해보이지만, remove()는 매개변수로 인덱스가 아닌 첫 번째로 나타나는 요소를 갖는다.

 

④ 다음은 리스트 내부를 조사하는 메서드에 대한 설명이다.

  ㉠ count(), index() 메서드를 이용해 리스트의 내부를 조사할 수 있다.

  ㉡ count() 메서드는 리스트에 특정 x가 몇 개 있는 지 조사하여 그 값을 반환한다.

 

    ⓐ 특정 x가 리스트 안에 존재하지 않더라도 0이 반환되므로 오류가 발생하지 않는다.

 

  ㉢ index() 메서드는 찾고자 하는 x의 인덱스를 반환한다.

 

    ⓐ 찾고자 하는 x가 리스트 안에 없으면 오류가 발생한다.

 

 다음은 리스트의 정렬과 관련된 메서드에 대한 설명이다.

  ㉠ sort(), reverse() 메서드를 이용해 리스트를 정렬할 수 있다.

  ㉡ sort()는 리스트 내의 요소를 오름차순으로 정렬시켜준다.

 

    ⓐ 서로 다른 데이터 타입의 순서 비교는 불가능하다.

 

    ⓑ sort()로 reverse = True로 인자를 사용할 경우 리스트 내의 요소를 내림차순으로 정렬할 수 있다.

 

 

    ⓒ reverse = False로 인자를 사용할 경우 리스트 내의 요소를 원래대로인 오름차순으로 정렬할 수 있다.

  ㉢ reverse() 메서드는 리스트의 순서를 뒤집는다.

 

    ⓑ 리스트의 앞뒤 순서만 바꾸는 것이지 요소들을 특정 순서로 정렬하지는 않는다.

  ㉣ sorted() 함수를 이용하여 정렬된 리스트를 리턴할 수 있다. 단, 리스트의 정렬된 상태는 변하지 않는다.

 

⑥ 다음은 리스트를 복사하는 메서드에 대한 설명이다.

  ㉠ copy() 메서드를 사용하는 이유는 리스트의 경우 할당 연산자를 사용할 경우 직접 값을 가져와 사용하는 것(Call by value)이 아닌 다른 변수를 참조해서 사용(Call by reference)하기 때문에 버그가 발생할 수 있다.

 

Call by Reference와 Call by Value

hemahero.tistory.com

     b에 3을 추가했지만, a에도 3이 추가되었음을 알 수 있다.

 

    ⓑ 이러한 상황을 방지하는 방법은 copy() 메서드를 이용하거나 각 인덱스를 일대일 대응시켜서 할당해주면 된다.

  ㉡ copy()는 리스트를 통째로 복사해서 반환한다.

 

 

   리스트 생성자를 이용해서 리스트를 복사할 수도 있다.

 

  ㉣ 각 인덱스별로 요소를 일대일로 할당시키는 방법도 있다.

 

'All about Python > 심화' 카테고리의 다른 글

루프 제어 continue, break  (0) 2022.05.27
Python 리스트 내포(List comprehension)  (0) 2022.05.27
Python 문자열 메서드  (0) 2022.04.17
Python 콜론(Colon)  (0) 2021.12.26
Python 가변인자 *(Asterisk)  (0) 2021.08.29