WeniVooks

검색

견고한 파이썬

시퀀스 자료형

1. 시퀀스 자료형

시퀀스 자료형(Sequence type)은 Python의 자료형 중 하나로, 여러 개의 항목들이 순서대로 나열된 구조를 나타내는 데이터 유형입니다. 시퀀스 자료형은 다음과 같은 공통적인 연산 및 특성을 가집니다.

Python에서 제공하는 연속된 데이터 타입인 시퀀스 자료형에는 다음과 같은 것들이 있습니다.

  • 리스트(List)
  • 문자열(String)
  • 튜플(Tuple)
  • 바이트(Bytes)
  • 바이트배열(Bytearray)
  • 범위(range)

이전에 공부했던 문자열 자료형을 예를 들어 시퀀스 자료형의 특징을 설명해 보도록 하겠습니다.

바이트와 바이트배열은 부록으로 두었습니다.

1.1 인덱싱 (Indexing)

각 항목은 고유한 인덱스를 통해 접근할 수 있습니다. 첫 번째 항목의 인덱스는 0이며, 그 다음 항목은 1, 2, ... 순으로 증가합니다. 음수 인덱스를 사용하여 끝에서부터 역으로 접근할 수도 있습니다.

example = 'abcde' print(example[0]) # 출력: a print(example[2]) # 출력: c
1.2 슬라이싱 (Slicing)

시퀀스의 일부분을 선택하여 새로운 시퀀스를 생성할 수 있습니다.

example = 'abcde' print(example[1:3]) # 출력: bc print(range(10)[3]) # 출력: 3 print(range(100)[::5]) # 출력: range(0, 100, 5)
1.3 특정 항목의 포함 여부(Member)

innot in 키워드를 사용하여 시퀀스에 특정 항목이 포함되어 있는지 확인할 수 있습니다.

example = 'abcde' print('a' in example) # 출력: True print('z' in example) # 출력: False
1.4 연결 및 반복 (Iteration)

+ 연산자를 이용해 시퀀스를 연결할 수 있으며, * 연산자를 이용하여 반복할 수 있습니다.

example1 = 'abcde' example2 = 'f' print(example1 + example2) # 출력: abcdef print(example2 * 3) # 출력: fff
1.5 내장 함수

len(), max(), min(), count() 등의 여러 내장 함수를 지원합니다. 내장 함수는 각 자료형에서 더 깊이 다뤄보겠습니다.

example = 'abcde' print(len(example)) # 출력: 5 print(min(example)) # 출력: a print(max(example)) # 출력: e

시퀀스 자료형들은 Python에서 매우 중요한 역할을 하며, 다양한 연산 및 기능을 제공하여 개발자에게 유용하게 활용됩니다.

2. 시퀀스 자료형의 패킹과 언패킹

파이썬의 패킹(packing)과 언패킹(unpacking)은 데이터를 그룹화하거나 그룹에서 분해하는 간결한 방법을 제공합니다. 이러한 기능은 코드를 더 간결하고 가독성 있게 만들어 줍니다.

2.1 패킹 (Packing)

패킹은 여러 개의 데이터를 하나의 변수에 담는 과정을 의미합니다. 튜플 패킹을 통해 살펴보겠습니다. 통해 볼 수 있습니다.

# 튜플 패킹 packed_tuple = 1, 2, 3, 4 print(packed_tuple) # 출력: (1, 2, 3, 4)
2.2 언패킹 (Unpacking)

언패킹은 패킹된 데이터를 여러 개의 변수로 분배하는 과정을 의미합니다.

# 튜플 패킹 packed_tuple = 1, 2, 3, 4 # 튜플 언패킹 a, b, c, d = packed_tuple print(a) # 출력: 1 print(b) # 출력: 2

더 다양한 형태를 살펴보도록 하겠습니다.

a, b, c = range(3) a
a, b, c, d, e = 'hello' a
a, b = [10, 20] a

이러한 언패킹은 아래와 같은 반복문에서도 사용될 수 있습니다.

for i, j in [[10, 20], [100, 200]]: print(i, j)
10 20
100 200
10 20
100 200

여기서 각각 10과 20이 언패킹되어 i와 j로 들어간 것을 확인할 수 있습니다.

2.2.1 별표(*)를 이용한 언패킹

별표(*)를 사용하면, 여러 개의 요소를 한번에 변수로 할당할 수 있습니다. 이는 특히 리스트나 튜플에서 일부만 변수로 할당하고 나머지를 다른 변수에 할당할 때 유용합니다.

first, *middle, last = [1, 2, 3, 4, 5] print(first) # 출력: 1 print(middle) # 출력: [2, 3, 4] print(last) # 출력: 5
{"packages":["numpy","pandas","matplotlib","lxml"]}
6장 리스트, 튜플, 딕셔너리, 셋6.2 리스트