Programming/Python

[코딩도장-파이썬] 시퀀스(Sequence) 자료형 활용하기 1

Supreme_YS 2020. 11. 10. 23:18

._리스트, 튜플, range, 문자열은 모두 값이 연속적(sequence)이다. 파이썬에서는 리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형을 시퀀스 자료형(sequence types)라고 부른다.

연속적으로 이어진 자료형 출처. 코딩도장

._이 시퀀스 자료형 중에서 list, tuple, range, str을 주로 사용하며 bytes, bytearray라는 자료형도 있다.

._시퀀스 자료형의 가장 큰 특징은 공통된 동작기능을 제공한다는 점이다. 따라서 시퀀스 자료형의 기본적인 사용 방법을 익혀 두면 나중에 어떠한 시퀀스 자료형을 접하게 되더라도 큰 어려움 없이 바로 사용할 수 있다. 시퀀스 자료형으로 만든 객체를 시퀀스 객체라고 하며, 시퀀스 객체에 들어있는 각 값을 요소(element)라고 부른다.

 

._시퀀스 안에 특정 값이 있는지 확인하기 (in) 있으면 True, 없으면 False

형태 : 값 in 시퀀스객체

예시.

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #a라는 변수에 1부터 10까지의 값을 지닌 list 생성
print(10 in a) #a라는 변수에 10이라는 값이 있는지 확인 --> True 출력

print(11 in a) #a라는 변수에 11이라는 값이 있는지 확인 --> False 출력 

 

._시퀀스 안에 특정 값이 없는지 확인하기 (not in) 없으면 True, 있으면 False

형태 : 값 not in 시퀀스객체

예시.

b = list(range(11))
print(10 not in b) #b라는 변수에 10이라는 값이 있는지 확인 --> False 출력

print(11 not in b) #a라는 변수에 11이라는 값이 있는지 확인 --> True 출력 

 

._시퀀스 객체 연결하기

시퀀스 객체는 + 연산자를 사용하여 객체를 서로 연결하여 새 객체를 만들 수 있다. 

c = [0, 10, 20, 30]
d = [9, 8, 7, 6]
print(c + d) 

>>>[0, 10, 20, 30, 9, 8, 7, 6]

시퀀스 객체 연결하기 출처. 코딩도장

._단,range는 + 연산자로 객체를 연결할 수 없다.그때는 range를 리스트 또는 튜플로 만들어서 연결하면 된다.

예.

e = list(range(0, 10)) + list(range(10, 20))
print(e)

f = tuple(range(0, 10)) + tuple(range(10, 20))
print(f)

 

._문자열은 + 연산자로 여러 문자열을 연결할 수 있다.

string = 'Hello, ' + ' Python!'
print(string) #Hello, Python 출력

 

._문자열에 숫자 연결하기

문자열에 정수를 연결하려고 하면 에러가 발생한다(정수를 문자열로 변환할 수 없어서 TypeError가 발생). 이 문제를 해결하려면 str을 사용하여 숫자(정수, 실수)를 문자열로 변환하면 된다. 문자열에 +를 사용할 때는 어떤 형태의 값이든 str을 사용해서 문자열로 맞춰주면 된다. 특히 이 방식은 파이썬에서 자주 사용하는 방식이며, 문자열과 숫자를 간단하게 조합할 수 있어서 계산 결과와 설명을 함께 출력할 때 편리하다.

 

._시퀀스 객체 반복하기

형태 : 시퀀스객체 * 정수 또는 정수 * 시퀀스객체

[0, 10, 20, 30] * 3 #요소 0, 10, 20, 30이 들어있는 리스트를 3번 반복한다.

 

._마찬가지로 range는 * 연산자를 사용할 수 없기 때문에 리스트나 튜플로 만들어서 반복하면 된다.

예. list(range(0, 3)) * 3 , tuple(range(0, 3)) * 3

 

._문자열은 반복이 가능하다.

예. 'Hello, Python' * 3