파이썬은 리스트에서 요소를 삭제하는 3가지 방법을 지원합니다.
remove, pop, del이 그것입니다.
비슷하지만 조금씩 다른 3가지 함수에 대해 알아보겠습니다.
1. remove()
remove()는 파이썬 리스트에서 제공하는 함수입니다. 리스트의 요소를 제거할때 값으로 제거합니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
company.remove('Nexon')
print(company)
결과)
['SamSung', 'Naver', 'Kakao']
remove는 삭제하려는 항목이 리스트에 없는 경우 ValueError를 리턴합니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
company.remove('Line')
print(company)
결과)
line 2, in <module>
company.remove('Line')
ValueError: list.remove(x): x not in list
원소 x가 리스트안에 없어서 ValueError를 리턴합니다.
이것을 방지하기 위해서 리스트안에 요소가 들어있는지 확인하고 삭제를 진행합니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
if 'Line' in company:
company.remove('Line')
print(company)
결과)
['SamSung', 'Nexon', 'Naver', 'Kakao']
요소가 리스트에 없어 삭제가 진행되지 않았습니다.
2. pop()
pop()은 파이썬 리스트에서 제공하는 함수입니다. 리스트의 요소를 제거할때 인덱스로 제거합니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
company.pop(1)
print(company)
결과)
['SamSung', 'Naver', 'Kakao']
인덱스 1번인 'Nexon'을 삭제했습니다. pop() 함수는 리스트에서 요소를 삭제한 후에 리스트를 다시 재구성해줍니다. 새롭게 'Naver'가 인덱스 1번이 됩니다.
2-1. pop() 함수에 인덱스를 넣지 않을때
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
company.pop()
print(company)
결과)
['SamSung', 'Nexon', 'Naver']
pop()함수에 인덱스를 넣지 않으면 리스트의 가장 마지막 인덱스를 삭제합니다. 따라서 'kakao'가 삭제되었습니다.
2-2. pop() 함수의 객체 반환
pop() 함수는 리스트에서 삭제한 값을 객체로 반한합니다. 따라서 다음과 같이 사용할 수도 있습니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
company.append(company.pop(0))
print(company)
결과)
['Nexon', 'Naver', 'Kakao', 'SamSung']
인덱스 0번의 'SamSung'을 삭제하고 객체로 반환해서 company리스트의 마지막에 추가합니다.
따라서 0번 인덱스는 'Nexon'이 되고 마지막 인덱스의 요소는 'SamSung'이 됩니다.
3. del 내장 함수
del 함수를 이용해서 리스트의 요소를 지울 수도 있습니다.
pop()과 같이 인덱스를 이용합니다. 그리고 리스트를 삭제후 재구성해줍니다.
하지만 pop()함수와 같이 삭제한 항목을 객체로 반환해주지는 않습니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
del company[1]
print(company)
결과)
['SamSung', 'Naver', 'Kakao']
1번 인덱스의 요소를 삭제하고 리스트를 재구성했습니다. 따라서 1번 인덱스의 값인 'Nexon'이 삭제되었습니다.
3-1. del 함수를 이용한 슬라이싱
del 함수는 대괄호를 사용합니다. 그래서 슬라이싱을 사용할 수 있습니다.
company = [ 'SamSung', 'Nexon', 'Naver', 'Kakao' ]
del company[:-1]
print(company)
결과)
['Kakao']
del company[:-1]로 요소들을 삭제했습니다. 리스트 슬라이싱의 규칙을 따라 마지막 요소인 -1을 빼고 모두 삭제해서 'kakao' 하나만 남았습니다.
del company[1:]를 사용한다면 'SamSung'빼고 모든 요소가 삭제됩니다. 또 del company[:]를 사용한다면 모든 요소를 삭제할 수 있습니다.
'[Python]' 카테고리의 다른 글
[Python] 파이썬 : 람다(lambda) 함수 (0) | 2022.08.19 |
---|---|
[Python] 파이썬 진수 변환 hex(), oct(), bin(), int() (0) | 2022.08.07 |
[Python] 파이썬 heap 자료구조, heapq 모듈 사용 (0) | 2022.07.25 |
[Python] 순열과 조합 데카르트 곱 permutations and combinations, cartesian product (0) | 2022.07.24 |
[Python] f-string을 이용한 문자열 포메팅 (0) | 2022.07.22 |