본문 바로가기
Python notes/Others

파이썬 크롤러) 리스트에서 홀수번째 혹은 짝수번째 요소만 추출하기

by 성실한 나무 2019. 1. 6.

#1. 리스트에서 요소를 추출하는 방법

일반적으로 리스트에서 요소를 추출하려면 인덱스 번호를 활용한다. 예를 들어 a_list=['one','two','three','four','five']라는 리스트가 있을 때 a_list[0]과 같이 리스트 명을 쓰고 [ ] 괄호 안에 인덱스 번호를 적어 print(a_list[0])을 실행하면 해당 인덱스 번호에 해당하는 'one'이라는 원소가 출력이 된다. 참고로 파이썬에서 리스트의 인덱스 번호는 0부터 시작한다.

슬라이싱이라는 기법으로 몇번째부터 몇번째까지의 원소를 출력할 수도 있다. a_list[0:2]와 같이 인덱스 번호 대신 "0 콜론 2"를 [ ] 괄호 안에 입력할 경우, 0번째부터 2번째 전까지의 원소들을 출력해 준다. 즉 'one', 'two'가 출력이 된다.

 

 

#2. 리스트에서 홀수번째 혹은 짝수번째 요소만 추출하는 방법은 없을까?

반응형

그렇다면, 홀수번째 혹은 짝수번째 요소만 추출하는 방법은 없을까? 매번 순서대로만 요소를 추출하지 않기 때문이다. 이런 경우에는 슬라이싱을 할 때 [시작 인덱스값 :: 인덱스 간격값]을 설정해서 리스트를 슬라이싱하는 방법을 사용하면 된다.

아래와 같이 a_list[0::2]의 의미는 a_list의 0번째 인덱스부터 2의 간격의 인덱스들의 요소들을 추출하라는 의미이다. 즉, 이 방법을 통해 0, 2, 4 ... 인덱스들의 요소들을 출력할 수 있다. 

이에 따라 리스트의 홀수번째 요소를 추출하고 싶은 경우, 리스트[1::2]를 하면 되고, 짝수번째 요소를 추출하고 싶은 경우, 리스트[0::2]를 하면 되는 것이다.

파이썬 홀수번째, 짝수번째 요소만 추출하기

이를 응용해서 0번째 원소로부터 3의 간격으로 원소를 추출하고 싶은 경우, 4의 간격으로 원소를 추출하고 싶은 경우 각각 리스트[0::3], [0::4]를 하면 된다. 몇번째 원소부터 시작할 것인지, 몇의 간격으로 원소를 추출할 것인지 값을 정해서 넣기만 하면 리스트에서 원소를 추출할 때 다양하게 활용할 수 있다.

 

 

#3. 숫자 원소인 경우, 처음부터 홀수 리스트 혹은 짝수 리스트를 만들 수 있다.

숫자 원소인 경우라면 처음부터 홀수 리스트, 짝수 리스트를 만드는 방법도 있다. list와 range 함수를 사용하면 간단하게 리스트를 만들 수 있다. list(range(처음시작할 원소값, 끝날 원소값+1, 원소들 사이의 간격값))으로 정의할 수 있다. 아래 코드를 보면 좀 더 쉽게 이해할 수 있다.

list, range함수로 간격이 일정한 리스트 만들기

0부터 9까지 원소를 구하는데 그 간격을 1로 하는 경우 list(range(0,10,1))로 코드를 작성하면 되고, 위와 같이 출력 결과를 확인할 수 있다. 여기서 주의할 점은 파라미터를 입력할 때 원하는 원소의 끝값 더하기 1을 해주어야 한다는 점이다. 따라서 입력하는 파라미터가 9가 아닌 10이 입력되어야 0~9까지 원소가 들어간 리스트를 만들 수가 있다.

그 밖에 원소 간격을 2, 3, 4 등 여러가지 값을 넣어서 다양한 간격의 리스트를 만드는데 활용할 수 있다.

 

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

댓글