[TIL_Python]시퀀스 자료형

5183 단어 TILpythonTIL

시퀀스 자료형 활용

-리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형을 시퀀스 자료형(sequence types)라고 부른다.
-공통된 동작과 기능을 제공한다는 특징을 갖고 있다.

시퀀스 자료형으로 만든 객체를 시퀀스 객체라고 하며, 시퀀스 객체에 들어있는 각 값을 요소(element)라고 한다.

1. 특정 값이 있는지 확인하기

1.1 값 in 시퀀스객체

>>> 30 in a
True
>>> 100 in a
False

시퀀스 객체에 in 연산자를 사용했을 때 특정 값이 있으면 True, 없으면 False가 나온다.
따라서 리스트 a에 30이 있으므로 True, 100이 없으므로 False가 나온다.

1.2 값 not in 시퀀스객체

>>> 100 not in a
True
>>> 30 not in a
False

2. 시퀀스 객체 연결하기

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

리스트 a와 b를 더해 두 리스트를 연결시켰다.

📢시퀀스 자료형 중 range는 +연산자로 객체를 연결할 수 없다.
따라서 range를 리스트 또는 튜플로 만들어서 연결해야 한다.

3. 시퀀스 객체 반복하기

곱하기 연산자(*)를 이용한다.
but 0또는 음수를 곱하면 빈 객체가 나오기 때문에 실수는 곱할 수 없다.
-시퀀스객체 정수
-정수
시퀀스객체

위의 객체 연결과 마찬가지로 range는 *연산자를 사용할 수 없다.
range를 리스트나 튜플로 변경하면 가능하다.

4. 리스트와 튜플의 요소 개수 구하기

-len()함수를 사용한다.

>>> len(a)
10

📢range와 문자열의 길이도 마찬가지로 len함수를 사용하면 된다.

5. 인덱스 사용하기

시퀀스 객체의 각 요소는 순서가 정해져 있으며, 이 순서를 인덱스라고 부른다.
시퀀스 객체에 [ ]를 붙이고 [ ]안에 각 요소의 인덱스를 지정하면 해당 요소에 접근할 수 있다.

>>> a = [38, 21, 53, 62, 19]
>>> a[0]    # 리스트의 첫 번째(인덱스 0) 요소 출력
38
>>> a[2]    # 리스트의 세 번째(인덱스 2) 요소 출력
53
>>> a[4]    # 리스트의 다섯 번째(인덱스 4) 요소 출력
19

인덱스는 항상 0부터 시작한다.

시퀀스 객체에 인덱스를 지정하지 않으면?
=해당 객체 전체를 뜻한다.
=리스트를 출력하면 []를 포함한 리스트 전체가 출력된다.

5.1 음수 인덱스 지정하기

인덱스를 음수로 지정하면 뒤에서부터 요소에 접근한다.
맨 뒤 요소의 인덱스는 -1이다.

>>> a = [38, 21, 53, 62, 19]
>>> a[-1]   # 리스트의 뒤에서 첫 번째(인덱스 -1) 요소 출력
19
>>> a[-5]   # 리스트의 뒤에서 다섯 번째(인덱스 -5) 요소 출력
38

📢인덱스의 범위를 벗어나면 오류가 뜬다.

5.2 마지막 요소에 접근하기

  1. 위와 같이 인덱스를 -1로 지정하기
  2. len()함수 이용하기
    a[len(a) -1]

5.3 요소에 값 할당하기

시퀀스객체[인덱스] = 값

>>> a = [0, 0, 0, 0, 0]    # 0이 5개 들어있는 리스트
>>> a[0] = 38
>>> a[1] = 21
>>> a[2] = 53
>>> a[3] = 62
>>> a[4] = 19
>>> a
[38, 21, 53, 62, 19]
>>> a[0]
38
>>> a[4]
19

튜플과 range는 불가

5.4 del로 요소 삭제하기

del 시퀀스객체[인덱스]

>>> a = [38, 21, 53, 62, 19]
>>> del a[2]
>>> a
[38, 21, 62, 19]

튜플과 range는 불가

6. 슬라이스 사용하기

:시퀀스 객체의 일부를 잘라내기
시퀀스객체[시작인덱스:끝인덱스]

>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[0:4]     
[0, 10, 20, 30]


인덱스 0부터 3까지 잘라서 새 리스트를 만들었다.
이때 끝 인덱스는 실제로 가져오려는 인덱스보다 1을 더 크게 지정해야한다.

만약 a[1:1]처럼 시작 인덱스와 끝 인덱스의 숫자가 같다면 아무것도 가져오지 않는다.

6.1 인덱스 증가폭 사용하기

시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭]
주의 할 점은 인덱스의 증가폭이지 요소의 값 증가폭이 아니라는 점이다.

>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[2:8:3]    # 인덱스 2부터 3씩 증가시키면서 인덱스 7까지 가져옴
[20, 50]

6.2 인덱스 생략하기

시퀀스객체[:끝인덱스]
a[:7] = 리스트 처음부터 인덱스 6까지 가져옴.
시퀀스객체[시작인덱스:]
a[7:] = 인덱스 7부터 마지막 요소까지 가져옴.
시퀀스객체[:]
a[:] 리스트 전체를 가져옴.

6.3 튜플,range,문자열에 슬라이스 사용하기

6.3.1 튜플
튜플[시작인덱스:끝인덱스]
튜플[시작인덱스:끝인덱스:인덱스증가폭]

6.3.2 range
range객체[시작인덱스:끝인덱스]
range객체[시작인덱스:끝인덱스:인덱스증가폭]

6.3.3 문자열
문자열[시작인덱스:끝인덱스]
문자열[시작인덱스:끝인덱스:인덱스증가폭]

6.4 슬라이스에 요소 할당하기

시퀀스객체[시작인덱스:끝인덱스] = 시퀀스객체

>>> a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[2:5] = ['a', 'b', 'c']    # 인덱스 2부터 4까지 값 할당
>>> a
[0, 10, 'a', 'b', 'c', 50, 60, 70, 80, 90]

좋은 웹페이지 즐겨찾기