Python

Sequence 자료형

ivvy07 2024. 1. 1. 13:13

 

Sequence란?
  • 수의 나열, 자료의 나열
  • 어떤 값들이 연속적으로 배열되어 있음을 뜻함
  • Python에서는 list, tuple, string, range가 있다
Range
  • 연속된 숫자를 만드는 데 사용됨
  • 숫자의 배열로 이루어진 list나 tuple을 만드는 데 주로 이용, for문에서 자주 사용
  • range가 숫자를 생성할 때는 0부터 생성하며, 마지막 숫자의 앞 숫자까지만 출력한다
>>> range(5)    # 생성할 숫자의 개수 지정
range(0, 5)    # 주의: 0, 1, 2, 3, 4의 숫자 배열을 생성합니다.

>>> range(3, 9)    # 생성할 숫자의 시작과 끝을 지정할 수도 있습니다.
range(3, 9)    # 주의: 3, 4, 5, 6, 7, 8의 숫자 배열을 생성합니다.

>>> range(3, 10, 2)    # 세 번째 인수는 증가폭을 의미합니다.
range(3, 10, 2)    # 주의: 3, 5, 7, 9

>>> range(3, 11, 2)    # 세 번째 인수는 증가폭을 의미합니다.
range(3, 10, 2)    # 주의: 3, 5, 7, 9

>>> range(30, 11, -5)    # 음수의 증가폭도 사용가능합니다.
range(30, 11, -5)    # 주의: 30, 25, 20, 15

>>> range(3, 10, -1)    # 사용가능합니다.
range(3, 10, -1)
>>> list(range(3, 10, -1))    # 주의: 아무 숫자도 생성되지 않습니다.
[]

 

List, tuple
  • 차이점은 list는 요소(element)를 추가, 삭제, 삽입, 변경할 수 있으나, tuple은 한번 생성되면 요소를 추가, 삭제, 삽입, 변경할 수 없다
  • list, tuple 내에 list, tuple, dictionary 형태의 자료형도 저장 가능!
# 콤마(,)를 이용하여 숫자를 여러 개 입력하면 파이썬은 이를 tuple로 인식합니다.
>>> 3, 1, 4
(3, 1, 4)

>>> (3, )    # 요소가 한 개인 tuple을 만드는 방법 1
(3, )   

>>> 3,    # 요소가 한 개인 tuple을 만드는 방법 2
(3, )

 

Sequence 자료형의 공통 기능
  • len() : 시퀀스 자료형에 속해있는 요소(element)의 개수를 반환
  • in, not in 연산자 : 시퀀스 내에 어떤 요소가 있는지 확인할 때 사용
  • [](인덱스)를 사용하여 요소에 접근(access) : []를 이용하여 시퀀스 내 개별 요소에 접근할 수 있다
  • 시퀀스의 마지막 요소의 인덱스는 -1
>>> l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> t = (1, 2, 3, 4, 5, 6, 7)
>>> r = range(0, 10)
>>> s = 'Hello Python'

>>> len(l)
9

>>> 11 in t    # Bool형 반환
False

>>> r[2]    # 요소의 번호는 항상 0부터 시작하므로 주의해야 한다.
2

 

list, tuple 공통 기능
  • '+' 연산자를 이용해 연결 가능
  • '*' 연산자를 이용해 시퀀스를 반복할 수 있다
>>> a = [1, 2, 3]
>>> b = [4, 5]
>>> a + b    # 새로운 리스트 인스턴스를 생성합니다.
[1, 2, 3, 4, 5]

>>> [1, 2, 3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]    # 새로운 인스턴스 생성

 

list에서 요소 추가
  • list.append(x) : list 맨 마지막에 하나의 요소 추가
  • list.insert(i, x) : 특정 인덱스에 요소 추가
  • list.extend(iterable) : 다른 list와 연결하여 원래의 list 확장
list에서 요소 삭제
  • list.pop([i]) : list의 특정 인덱스 삭제 후, 삭제한 요소 반환
  • list.remove(x) : list에서 특정 값을 삭제  = del a[:]
  • list.clear() : list의 모든 요소 삭제

tuple은 요소를 변경할 수 없으므로 위와 같은 메서드들은 tuple에는 없다!

 

출처 : https://m.blog.naver.com/taeuck/222006848530