- 시퀀스
연속적으로 이어진 자료형을 시퀀스 자료형이라고 한다
list, tuple, range, str, bytes. bytearray 자료형이 해당된다
· 시퀀스 자료형의 공통 기능
시퀀스 자료형으로 만든 객체를 시퀀스 객체, 시퀀스 객체에 들어있는 각각의 값을 요소라고 한다
-특정 값이 있는지 확인
값 in 시퀀스
//없는 지 확인
값 not in 시퀀스
※ 몇 번째에 있는 지는 알 수 없음
-시퀀스 객체 연결
시퀀스 객체1 + 시퀀스 객체2
※ 단, range는 +연산자로 객체를 연결이 불가하다. range를 튜플이나 리스트로 만들어 연결하면 된다.
※ 문자열에 정수 연결하면 이것이 불가능해 에러가 난다.
따라서 str을 사용해 숫자를 문자열로 변환해야 한다.
'문자열'+str(정수)
'문자열'+str(실수)
- 시퀀스 객체 반복
* 연산자로 특정 횟수만큼 반복해 새 시퀀스 객체를 만듦(0, 음수를 곱하면 빈 객체가 나오며 실수는 곱할 수 없음).
시퀀스 객체 * 정수
정수 * 시퀀스 객체
※ range는 * 연산자를 사용해 반복 불가 -> range를 튜플/리스트로 만들어 반복
· 시퀀스 객체 요소 개수 구하기
요소의 개수는 길이로도 볼 수 있다. len() 함수로 사용해 알 수 있다.
len(시퀀스 객체)
- range의 숫자 생성 개수 구하기
len(range(시작, 끝, 증가폭))
길이 : (끝 - 시작)/증가폭
· 인덱스 사용
인덱스 : 시퀀스 객체의 각 요소에 정해져 있는 순서
시퀀스 객체에 대괄호([])를 붙이고 대괄호 안에 각 요소의 인덱스를 지정하면 해당 요소에 접근 가능
인덱스는 항상 0부터 시작하고 요소 길이에서 1 뺀만큼 존재한다
※ __getitem__ 메서드
시퀀스 객체에서 요소를 가져올 수 있다
시퀀스 객체.__gettitem__(인덱스)
-음수 인덱스 지정
음수 인덱스를 지정하면 뒤에서부터 요소에 접근한다 -> 마지막 요소 접근
음수 인덱스로 한 번 쓱 다 훑고 또 접근은 불가하다.
-1 + -(요소 갯수) -> 접근 불가
-요소 값 할당
시퀀스 객체[인덱스] = 값
-del로 요소 삭제
del 시퀀스객체[인덱스]
· 슬라이스 사용
시퀀스 객체 일부 잘라낸다
시퀀스객체[시작인덱스:끝인덱스]
시퀀스객체[시작인덱스:끝인덱스:증가폭]
끝인덱스는 가져오려는 번위를 포함하지 않기 때문에 실제 가져오려는 값보다 하나 더 크게 지정해 준다
-인덱스 생략하기
주로 마지막 일부분만 출력 시 사용
시퀀스객체[시작인덱스:] //시작인덱스~끝까지 출력
시퀀스객체[:끝인덱스] //처음~끝인덱스-1까지 출력
시퀀스객체[:] //전체 출력
-인덱스 생략하고 증가폭 사용
시퀀스객체[:끝인덱스:증가폭] //처음부터
시퀀스객체[시작인덱스::증가폭] //마지막까지
시퀀스객체[::증가폭] //처음부터 끝까지
시퀀스객체[::] //전체 출력
시퀀스[::-1] //거꾸로 출력
-슬라이스에 요소 할당
시퀀스객체[시작인덱스:끝인덱스] = 시퀀스객체
시퀀스객체[시작인덱스:끝인덱스:증가폭] = 시퀀스객체
//ex)
>>>a = [0, 1, 2, 3, 4]
>>>a[1:3] =['x', 'y', 'z']
>>>a
[0, x, y, z, 4]
-del로 슬라이스 삭제하기
del 시퀀스객체[시작인덱스:끝인덱스]
원래 있던 리스트가 변경되는 것으로, 새 리스트 생성되는 것 아니다