이 기사의 내용은 Python이 시퀀스의 요소를 필터링하는 방법에 대한 것입니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.
1. 요구 사항
시퀀스에는 일부 데이터가 포함되어 있으며 특정 표준에 따라 값을 추출하거나 시퀀스를 삭제해야 합니다. .
2. Solution
일반적으로 가장 간단한 방법은 목록 이해를 사용하는 것입니다.
예:
myList=[1,4,-5,10,-7,2,3,-1] print([n for n in myList if n>0]) print([n for n in myList if n<0])
Result:
[1, 4, 10, 2, 3] [-5, -7, -1]
목록 이해 사용의 한 가지 잠재적인 단점은 원래 입력이 매우 그렇게 하면 큰 결과를 초래할 수 있습니다. 이것이 고려해야 할 문제인 경우 생성기 표현식을 사용하여 필터링된 결과를 반복적으로 생성할 수 있습니다. 예를 들어, 기준은 단순히 목록 이해 또는 생성기 표현식으로 표현할 수 없습니다. 예를 들어, 심사 프로세스에 예외 처리 또는 기타 복잡한 세부 사항이 포함되어 있다고 가정합니다. 이를 바탕으로 필터링 로직을 처리하는 코드를 별도의 함수에 넣은 후 내장된 filter() 함수를 사용하여 처리하면 됩니다.
myList=[1,4,-5,10,-7,2,3,-1] pos=(n for n in myList if n >0) for x in pos: print(x)
Result :
1 4 10 2 3#🎜🎜 #filter()는 반복자를 생성하므로 결과를 목록으로 원할 경우 예제와 같이 list()를 포함해야 합니다.
3. 분석
목록 이해 및 생성기 표현식은 데이터를 필터링하는 가장 간단하고 직접적인 방법인 경우가 많습니다. 또한 동시에 데이터를 변환하는 기능도 있습니다. 예:values=['1','2','-3','-','4','N/A','5'] def is_int(val): try: x=int(val) return True except ValueError: return False ivals=list(filter(is_int,values)) print(ivals)결과:
['1', '2', '-3', '4', '5']데이터 필터링과 관련하여 기준에 맞지 않는 값을 버리는 대신 새로운 값으로 바꾸는 상황이 하나 있습니다. 그들을. 예를 들어. 양의 정수를 찾는 것 외에도 지정된 범위 내에서 요구 사항을 충족하지 않는 값을 바꾸려고 합니다. 종종 이는 필터 기준을 다음과 같이 조건식으로 이동하여 쉽게 수행할 수 있습니다. 필터 도구는 itertools.compress()이며, 이는 반복 가능 및 부울 선택기 시퀀스를 입력으로 허용합니다. 출력 시 해당 부울 선택기에서 True인 모든 반복 가능한 객체 요소를 제공합니다. 이는 한 시퀀스의 필터 결과를 다른 관련 시퀀스에 적용하려는 경우에 유용합니다. 예:
import math myList=[1,4,-5,10,-7,2,3,-1] print([math.sqrt(n) for n in myList if n>0])결과:
[1.0, 2.0, 3.1622776601683795, 1.4142135623730951, 1.7320508075688772]여기서 핵심은 먼저 어떤 요소가 조건을 충족할 수 있는지 나타내는 부울 시퀀스를 만드는 것입니다. 그런 다음 압축() 함수는 부울 값 True를 만족하는 해당 요소를 선택합니다. filter() 함수와 유사하게, 압축()은 일반적인 상황에서 반복자를 반환합니다. 따라서 필요한 경우 list()를 사용하여 결과를 목록으로 변환해야 합니다.
위 내용은 Python에서 시퀀스의 요소를 필터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!