리스트에서 특정 값 'K' 바로 앞에 위치한 요소를 추출해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문과 append 메서드를 활용하면 손쉽게 해결할 수 있습니다.
예제
아래는 이를 구현한 예시 코드입니다.
my_list = [45, 65, 32, 78, 99, 10, 21, 2]
print("The list is : ")
print(my_list)
K = 99
print("The value of K is ")
print(K)
my_result = []
for elem in range(len(my_list) - 1):
if my_list[elem + 1] == K:
my_result.append(my_list[elem])
print("The result is : " )
print(my_result)
출력
The list is :
[45, 65, 32, 78, 99, 10, 21, 2]
The value of K is
99
The result is :
[78]
코드 설명
- 먼저 리스트를 정의하고 콘솔에 출력합니다.
- 'K' 값을 정의한 뒤 콘솔에 출력합니다.
- 결과를 저장할 빈 리스트를 하나 생성합니다.
- 리스트를 반복하면서 각 요소의 다음 위치에 있는 값이 'K'와 일치하는지 확인합니다.
- 일치하는 경우, 현재 요소를
append메서드를 사용해 빈 리스트에 추가합니다. - 마지막으로 결과 리스트를 콘솔에 출력합니다.
위 예제에서는 78이 99 바로 앞에 위치하므로 결과 리스트에 포함됩니다.
리스트 컴프리헨션을 활용한 간결한 방법
동일한 로직을 리스트 컴프리헨션(list comprehension)으로 작성하면 코드를 더욱 간결하게 표현할 수 있습니다.
my_list = [45, 65, 32, 78, 99, 10, 21, 2]
K = 99
my_result = [my_list[i] for i in range(len(my_list) - 1) if my_list[i + 1] == K]
print(my_result) # [78]
이 방법은 반복문과 조건문을 한 줄로 압축하여 가독성을 높이고, 동일한 결과를 얻을 수 있습니다.