HOWTO · Python

Python의 목록에서 요소의 모든 발생 제거

이 기사에서는 Python의 List에서 요소의 모든 발생을 제거하는 방법을 알아 봅니다.

이 페이지의 내용

Python의 목록은 동일한 요소의 여러 항목을 허용합니다. 요소의 값이 다른 요소와 같더라도 각 요소는 다른 색인을 갖습니다. 이러한 색인 번호를 사용하면 원하는 요소에 쉽게 액세스 할 수 있습니다.

그러나 동일한 요소의 여러 인스턴스를 원하지 않는 상황이있을 수 있습니다. 그런 다음 목록에서 해당 특정 요소의 모든 발생을 제거하고 싶을 것입니다. Python에서는이를 달성하는 여러 가지 방법이 있습니다.

filter()함수를 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거

Python에서는 filter() 함수를 사용하여 요소 필터링이 더 쉬워집니다. filter()함수는 두 개의 인수를 취하며 첫 번째 인수는 함수이고 두 번째 인수는 세트, 목록, 튜플 등이 될 수 있습니다.

예 1: __ne__을 사용하는filter()함수

myList = [2, 1, 3, 5, 1, 1, 1, 0]
myList = list(filter((1).__ne__, myList))
print(myList)

출력:

[2, 3, 5, 0]

이 예제에는1의 발생을 제거하려는myList목록이 있습니다. filter()함수는__ne__이라는 다른 함수를 사용하며,1값이myList내에 있는지 여부에 따라True또는False중 하나를 반환합니다. 값1이 목록에 있으면 단순히 버립니다. 그런 다음filter()함수에 의해 반환되는 모든 항목은list()함수를 사용하여 목록으로 변환됩니다.

예 2: lambda함수가있는filter()함수

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1

result = filter(lambda val: val != valueToBeRemoved, myList)
print(list(result))

출력:

[2, 3, 5, 0]

__ne__함수를 전달하는 대신lambda함수를filter()함수에 전달합니다.

myList목록에서 각 요소를 하나씩 가져와val변수에 저장합니다. val및valueToBeRemoved에있는 요소가 같지 않으면val에있는 요소 만 새 변수result에 추가됩니다. list()함수를 사용하여result를 목록으로 변환해야합니다.

리스트 내포을 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거

리스트 내포은 짧은 코드 작성 방법입니다. 목록 이해는 일반 함수 및 루프보다 빠릅니다.

예제 코드 :

myList = [1, 2, 3, 4, 2, 2, 3]
valueToBeRemoved = 2

myList = [value for value in myList if value != valueToBeRemoved]

print(myList)

출력:

[1, 3, 4, 3]

2요소의 발생을 제거하려는myList목록이 있습니다. 요소의 모든 인스턴스를 제거하기위한 기본 코드는 대괄호[]안에 있습니다. 여기에서for루프가 먼저 실행 된 다음myList목록에서 값을 가져와value변수에 저장합니다. 그 후value변수와valueToBeRemoved변수 내의 값이 서로 일치하지 않으면value변수의 값만 반환하고 목록myList에 저장합니다. 이 프로세스는 목록이 비워 질 때까지 계속됩니다. 마지막으로 원하는 출력을 포함하는 목록이 있습니다.

remove()함수를 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거

remove() 함수는 요소의 첫 번째 항목 만 제거합니다. remove()함수를 사용하여 요소의 모든 발생을 제거하려면for루프 또는while루프를 사용할 수 있습니다.

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1

try:
    while True:
        myList.remove(valueToBeRemoved)
except ValueError:
    pass

print(myList)

출력:

[2, 3, 5, 0]

위의 코드에서myList목록을 작성한 다음valueToBeRemoved변수가 있습니다.이 경우 목록에서 제거하려는 요소가 포함됩니다 (이 경우1). 목록을 반복하는 동안 해당 요소가 목록 안에 있으면remove()함수를 사용하여 목록에서 제거됩니다.