Python

[Python] list에서 remove 사용할 때 !!

에릭 Kim 2023. 6. 21. 15:21
반응형
_list = [1,2,3,4,5]

 

_list라는 리스트가 있을 때 remove라는 함수를 활용하여 리스트 안에 있는 원소들을 제거하고자 하였습니다. 

for x in _list:
    _list.remove(x)
    print(_list)

 

위와 같이 코드를 작성했을 때 결과 값은 

[2,3,4,5]
[2,4,5]
[2,4]

가 나오게 됩니다. 

 

 

예상으로는 아래와 같이 결과값이 출력되어야 했는데, 그 이유는 remove를 수행하면서 원본 리스트에 손상이 가기 때문이었습니다 ! 

[2,3,4,5]
[3,4,5]
[4,5]
[5]
[]

 

_list의 원소들이 하나씩 제거되면서, _list 자체도 바뀌게 되고, 바뀐 리스트에서 remove를 또 수행하기에 원하는 결과가 출력되지 않는 것입니다. 

 

그렇기에 원하는 결과값을 얻기 위해서는 해당 리스트의 복사본을 통해 반복문을 수행해야 합니다 ! 

for x in _list[:]:
    _list.remove(x)
    print(_list)

 

반응형

'Python' 카테고리의 다른 글

[Python] Lambda를 사용한 딕셔너리 정렬  (0) 2023.10.18