Python – N으로부터 K 거리 이내의 요소 제거하기
리스트에서 특정 값 N으로부터 K 거리 이내에 있는 요소들을 제거해야 할 때는 리스트 컴프리헨션(list comprehension)과 조건식을 함께 사용하면 간단하게 해결할 수 있습니다.
핵심 아이디어는 각 요소가 N - K보다 작거나 N + K보다 클 경우에만 결과 리스트에 포함시키는 것입니다. 즉, N−K부터 N+K 사이 범위에 속하는 값들은 모두 제외됩니다.
예제 코드
my_list = [13, 52, 5, 45, 65, 61, 18]
print("리스트는 다음과 같습니다 :")
print(my_list)
K = 3
print("K의 값은 ")
print(K)
N = 5
print("N의 값은 ")
print(N)
my_result = [element for element in my_list if element < N - K or element > N + K]
print("결과는 다음과 같습니다 :")
print(my_result)
실행 결과
리스트는 다음과 같습니다 : [13, 52, 5, 45, 65, 61, 18] K의 값은 3 N의 값은 5 결과는 다음과 같습니다 : [13, 52, 45, 65, 61, 18]
코드 설명
정수로 구성된 리스트를 정의한 후 콘솔에 출력합니다.
기준이 되는 거리 값 K를 정의하고 콘솔에 출력합니다.
중심이 되는 값 N을 정의하고 콘솔에 출력합니다.
리스트 컴프리헨션을 사용하여 리스트의 모든 요소를 순회하면서, 각 요소가
N - K(두 값의 차)보다 작거나N + K(두 값의 합)보다 큰지 검사합니다.조건을 만족하는 요소만 새로운 리스트에 저장됩니다.
생성된 결과 리스트는 변수에 할당됩니다.
최종 결과가 콘솔에 출력됩니다.
위 예제에서는 N=5, K=3이므로 2(=5−3) 미만이거나 8(=5+3) 초과인 값만 남게 됩니다. 따라서 범위 [2, 8]에 포함되는 값 5만 제거되고, 나머지 요소들은 결과 리스트에 그대로 유지됩니다.