(파이썬)시퀀스

·2023년 6월 4일
0

Python

목록 보기
4/11

시퀀스

시퀀스는 우리가 사용했던 리스트, 튜플, range, 문자열 처럼 값이 연속적으로 이어져 있는 자료형을 시퀀스 자료형이라고 한다.

시퀀스 자료형은 공통된 동작과 기능을 제공한다.

1. 특정 값이 있는지 확인

in을 사용하면 시퀀스 객체 안에 특정한 값이 있는지 확인할 수 있다.

a=[0,10,20,30,40]
30 in a #30이라는 값이 a객체에 있는지?
True
100 in a #100이라는 값이 a객체에 있는지?
False

in연산자 앞에 not을 붙이면 특정 값이 없는지 확인할 수 있다.

a=[0,10,20,30,40]
30 not in a # 30이라는 값이 a객체안에 없는지?
False

100 not in a # 100이라는 값이 a객체안에 없는지?
True

in과 not in 연산자는 range와 문자열에서도 활용 될 수 있다.

43 in (39, 43, 22, 13, 1)
True

1 in range(10)
True

'P' in 'Python'
True

객체 연결하기

시퀀스 객체는 + 연산자를 사용하여 객체를 연결할 수 있다.

a= [1,2,3,4,5]
b= [7,8,9,10]
print(a+b) == [1, 2, 3, 4, 5, 7, 8, 9, 10]

이 때 a+b의 경우 순서대로 값이 연결되기 때문에 a 객체의 요소가 앞에 나열된 이후 b의 요소가 뒤에 연결된다.

시퀀스 자료형에서 range는 + 연산자로 객체를 연결할 수 없는데 이때 range를 리스트 혹은 튜플로 만들어서 연결하면 된다.

list(range(0,10)) + list(range(10,20))

문자열의 경우도 +를 사용하면 연결할 수 있다.

'Hello, ' + 'Python'
'Hello, Python'

그러면 문자열에 숫자는 어떻게 연결할까?
-> 이 때는 숫자를 문자열로 바꿔서 연결을 해주면 된다.

'Hello ' + str(10)
'Hello 10'

시퀀스 객체 반복

시퀀스 객체에 * 연산자를 사용하여 특정 횟수만큼 반복을 시킬 수 있다. 이때 0이나 음수를 곱하면 빈 객체가 나오게 되며 실수는 곱할 수 없는 점, range는 역시 리스트와 튜플로 만들어 연산자를 사용해야 하는 점을 유의하자

[0,1,2] * 3 == [0, 1, 2, 0, 1, 2, ,0, 1, 2]
list(range(5))*3 == [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
'hello ' * 3 == 'hello hello hello '

시퀀스 객체의 요소 개수 구하기

객체의 길이를 구할 때는 len함수를 이용해 구할 수 있다.

a= [0,1,2,3,4,5,6,7]
len(a) == 8

len 함수를 이용해 range에서 몇 개의 요소가 생성되는지 알 수 있다.

len(range(0, 10 ,2))
5

문자열의 길이 구하기. 문자열에서 주의할 것은 공백도 길이에 포함된다.

b = 'Hello, world'
len(b)
12

인덱스

시퀀스 객체 안의 요소에는 순서가 정해져 있고 그 순서를 인덱스라고 부른다.

a = [38, 21, 53, 62, 19]
a[0] = 38 # a객체의 0번째 요소 출력

b = (38, 21, 53, 62, 19)
b[0] == 38

range도 인덱스로 접근할 수 있다.

r = range(0, 10, 2)
r[2] = 4

문자열 역시 인덱스로 접근할 수 있지만 유의해야할 점은 공백!

hello = 'Hello, world!'
hello[6] == ' '

시퀀스 객체에 인덱스를 지정하지 않은채 명령을 실행하면 객체 전체가 출력된다.

a = [3,4,5,6,7]
print(a) == [3,4,5,6,7]

음수 인덱스를 지정할 수 있다. 음수 인덱스는 뒤의 요소로부터 -1, -2 ... 순서로 진행된다.

출처: https://dojang.io/mod/page/view.php?id=2207

b = (1,2,3,4,5)
b[-1] == 5

r = range(0, 10, 2)
r[-3] = 4

범위를 벗어난 인덱스에 접근하게 되면 에러가 발생한다.

요소에 값 할당하기

a = [0,0,0]
a[0] = 1, a[1] = 1 , a[2] = 2
a == [1, 1, 2]

단, 튜플은 저장된 요소를 변경할 수 없기 때문에 사용이 불가능하다

del로 요소 삭제

del a[0]
a == [1, 2]

del 뒤에 삭제할 요소를 지정하면 해당 요소가 삭제된다. 역시 튜플에서는 사용할 수 없다.

profile
잘하자

0개의 댓글