본문 바로가기
프로그래밍/Python

파이썬(Python) 리스트(List) 슬라이스(Slice)로 원소 추출, 변환 하기

by 부자 꽁냥이 2022. 9. 17.

파이썬(Python)에서는 배열 형태를 다루는 객체 타입으로 리스트(List)가 있다. 이때 리스트 슬라이스를 통해서 원소를 추출(접근) 또는 변환할 수 있다.


   리스트 슬라이스

1) 개별 원소 추출(접근), 변환

a. 개별 원소 추출(접근)

리스트의 개별 원소를 추출(접근)하기 위해 각 괄호에 숫자(인덱스)를 넣어준다. 각 괄호 안에 들어가는 숫자는 0부터 (원소 개수-1)까지 또는 -(원소 개수)부터 -1까지이다. 이때 -1은 가장 마지막 원소를 뜻하며 -2는 가장 오른쪽에서 두 번째 원소를 의미한다.

 

l = ['a', 'b', 'c']

print(l[0]) ## 첫 번째 원소
print(l[1]) ## 두 번째 원소
print(l[2]) ## 세 번째 원소

print(l[-3]) ## 첫 번째(오른쪽에서 세 번째) 원소
print(l[-2]) ## 두 번째(오른쪽에서 두 번째) 원소
print(l[-1]) ## 세 번째(오른쪽에서 첫 번째) 원소

 

b. 개별 원소 변환

리스트(List) 슬라이스를 통해 특정 위치의 원소를 다른 값으로 변환할 수 있다.

 

l = ['a', 'b', 'c']

l[2] = 'e' ## 마지막 원소를 'e'로 변환
l[-3] = 'f' ## 첫 번째(오른쪽에서 세 번째) 원소를 'e'로 변환
print(l)

 


2) 여러 원소 추출(접근), 변환

a. 여러 원소 추출(접근)

리스트(List) 슬라이스(Slice)는 ':' 를 통해 여러 원소를 추출할 수 있다. 아래 코드와 주석을 통해 사용법을 익혀보자.

 

l = ['a', 'b', 'c', 'd', 'e', 'f']

print(l[2:6]) ## 세 번째 원소부터 6번째 원소까지  
print(l[3:]) ## 네 번째 원소부터 끝까지
print(l[:4]) ## 처음부터 네 번째 원소까지
print(l[::2]) ## 처음부터 오른쪽으로 2칸씩 원소 추출
print()
print(l[-6:-2]) ## 처음부터 4번째 원소까지  
print(l[::-2]) ## 마지막에서부터 오른쪽으로 2칸씩 원소 추출
print(l[::-1]) ## 순서 반전

 

b. 불규칙적으로 떨어져 있는 여러 원소 추출

두 번째, 세 번째, 다섯 번째 처럼 불규칙적으로 떨어져있는 원소들을 추출할 때는 컴프리헨션(Comprehension)을 이용한다.

 

l = [1,21,13,44,5,6]
print([l[i] for i in [1, 2, 4]]) ## 두 번째, 세 번째, 다섯 번째 원소 추출

 

 

다른 방법으로 operator 모듈에서 itemgetter를 통해서도 떨어져있는 원소들을 추출할 수 있다. 다만 앞에서와 다르게 튜플을 리턴한다.

 

from operator import itemgetter
print(itemgetter(1, 2, 4)(l)) ## 두 번째, 세 번째, 다섯 번째 원소 추출

 

c. 여러 원소 변환

앞에서의 여러 원소 추출을 위한 리스트(List) 슬라이스를 통하여 여러 원소를 변환할 수도 있다.

 

l = ['a', 'b', 'c', 'd', 'e', 'f']
l[0:3] = ['x', 'y', 'z'] ## 1~3번째 원소를 변환
print(l)

 


댓글


맨 위로