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

  1. filter()함수를 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거
  2. 리스트 내포을 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거
  3. remove()함수를 사용하여 Python의 목록에서 요소의 모든 인스턴스 제거

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변수에 저장합니다. valvalueToBeRemoved에있는 요소가 같지 않으면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()함수를 사용하여 목록에서 제거됩니다.

관련 문장 - Python List

  • Python의 목록에서 NaN 제거
  • 파이썬에서 여러 목록을 반복하는 방법