-
반응형
지난 포스팅에서는 리스트 요소를 추가하는 방법에 대해 알아보았습니다.
추가를 하였으니, 수정 및 삭제하는 방법에 대해 포스팅해 봅니다.
● 리스트 요소 수정
리스트 요소 수정은 간단합니다.
인덱스로 접근하여 변수 대입하듯이 하면 됩니다.
예제를 살펴 보지요.
>>> x = [1, 2, 2, 4, 5, 6, 3, 7]
## 세번째 요소 2를 10으로 변경해 봅니다. 인덱스로 접근하여 대입합니다.
>>> x[2]=10
>>> x
[1, 2, 10, 4, 5, 6, 3, 7]
>>>
● 리스트 요소 삭제
리스트 요소를 제거하는 방법입니다. 아래 방법으로 제거 가능합니다.
쓰임새를 알아 보겠습니다.
pop() : 특정 인덱스의 요소 하나를 삭제합니다.
del : pop과 비슷한 기능으로 인덱스로 접근한 요소를 삭제합니다. 사용방법이 조듬 다릅니다.
remove() : 특정 값으로 삭제 가능합니다.
clear() : 리스트의 모든 요소를 삭제합니다.pop( 인덱스) 로 사용하며 괄호안에 아무 값도 없으면 마지막 값을 삭제합니다. 결과로는 삭제되는 요소 값을 보여 줍니다.
메소드 이름이 delete?가 아니고 pop 인 이유가 추출을 하면서 삭제를 하므로 그런 것인가?라고 생각해 봅니다.
예제로 확인해 봅니다.
>>> x = [1, 2, 10, 4, 5, 6, 3, 7]
## 아무값도 안 주었더니 마지막 값인 7을 삭제한다는 반환 값을 돌려 줍니다.
## 다른 메소드 들은 아무 결과가 없었는데 결과값을 반환하고 삭제합니다.
>>> x.pop()
7
## 7을 삭제하고 x 리스트에는 7을 제외한 요소 값들이 남아 있습니다.
>>> x
[1, 2, 10, 4, 5, 6, 3]
## 인덱스 2의 값인 10을 삭제합니다.
>>> x.pop(2)
10
>>> x
[1, 2, 4, 5, 6, 3]
## -1은 그동안 학습한 것으로 예상되듯이 마지막 요소값을 가리킵니다. 마지막 요소값이 3 이므로 3을 반환합니다.
>>> x.pop(-1)
3
>>> x
[1, 2, 4, 5, 6]이번엔 del 함수를 사용하여 삭제 합니다.
사용법은 str.del() 의 형식은 아닙니다.
del x[0] 형식입니다.
예제를 통해 확인 합니다.
>>> x = [1, 2, 3, 4, 5, 6, 7]
## 두번째 요소 값을 제거 합니다.
>>> del x[1]
>>> x
[1, 3, 4, 5, 6, 7]
## 여러 개를 한꺼번에 제거하려면 슬라이싱을 응용하여 삭제 할 수 있습니다.
## 4번째 부터 모두 삭제 합니다. 즉 5, 6, 7 을 삭제합니다.
>>> del x[3:]
>>> x
[1, 3, 4]
>>>지금까지는 인덱스를 사용하여 요소의 몇 번째 값을 삭제하는 방법인데 값으로 접근하여 삭제하는 방법은 없을까?라는 궁금증이 발생할 것입니다.
이 기능을 하는 것이 remove 입니다.
하지만 remove는 첫번째 값만 삭제합니다. 같은 값이 여러 개 있을 경우 삭제하고 싶을 때는 remove를 여러 번 사용하거나, 간단한 함수를 구현하여 삭제합니다.
사용 방법은 remove( 삭제할 값 ) 입니다.
예제를 통해 알아봅니다.
>>> x = [1, 2, 4, 5, 2,2, 4, 5 ]
## 2의 값을 삭제합니다. 맨 처음으로 만나는 2 만 삭제 됩니다.
>>> x.remove(2)
>>> x
[1, 4, 5, 2, 2, 4, 5]
## 다시 2를 삭제합니다. 5 다음의 2만 삭제 됩니다.
>>> x.remove(2)
>>> x
[1, 4, 5, 2, 4, 5]
## 다시 2를 삭제합니다. 2가 모두 삭제 되었습니다.
>>> x.remove(2)
>>> x
[1, 4, 5, 4, 5]
>>>리스트의 요소를 모두 삭제하여 빈 리스트로 만드는 방법입니다.
clear() 를 사용합니다.
예제를 통해 알아봅니다.
>>> x = [1, 4, 5, 4, 5]
## 모든 요소를 삭제합니다.
>>> x.clear()
>>> x
[]
## del 로도 모든 요소를 삭제 할 수 있습니다. 아래와 같이 사용합니다.
>>> x = [1, 4, 5, 4, 5]
>>> del x[:]
>>> x
[]
>>>del() 만 알고 있어도 리스트의 요소를 삭제 할 수 있습니다.
Remove() 를 del로 대체 할 수 있는 예제 입니다.
>>> x = [ 1, 4, 5, 4, 3]
## index() 함수는 아직 다루지 않았지만 요소값의 인덱스 번호를 알려 줍니다.
>>> x.index(4)
1
## del을 이용해 remove() 처럼 사용 가능합니다.
## x.index(4) = 1 입니다. 즉 x[x.index(4)] 는 x[1] 과 같습니다.
>>> del x[x.index(4)]
>>> x
[1, 5, 4, 3]
>>> x = [ 1, 4, 5, 4, 3]
>>> x.remove(4)
>>> x
[1, 5, 4, 3]
>>>지금까지 리스트의 요소 수정 및 삭제 방법에 대해 알아 보았습니다.
다음 포스팅은 리스트 연산자 와 나머지 유용한 메소들에 대한 포스팅 예정입니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 리스트 정렬하기 (0) 2020.06.16 파이썬 리스트 연산하기 (0) 2020.06.15 파이썬 리스트 요소 추가 및 합치기 (0) 2020.06.13 파이썬 리스트 요소 나누기 (슬라이싱) (0) 2020.06.12 파이썬 다양한 메소드(함수)로 문자열 치환 및 삽입하기 (0) 2020.06.11