Python 시퀀스

시퀀스 타입

문자열, 리스트, 튜플의 3가지 종류.

문자열 - 인용부호(‘ ‘, “ “)

리스트 - [ ] / 튜플 - ( ) 로 표현

시퀀스 타입의 객체는 인덱스 연산을 통해 내부 항목에 접근 할 수 있다.

리스트

리스트는 순차적인 데이터를 나타내는 데 유용하며, 문자열과는 달리 내부 항목을 변경할 수 있다.

리스트의 생성

>>> empty_list1 = []
>>> empty_list2 = list()
>>> sample_list = ['a', 'b', 'c', 'd']
>>> sample_list2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

다른 데이터를 리스트로 변환

list 함수를 사용

>>> list('League of legends')
['L', 'e', 'a', 'g', 'u', 'e', ' ', 'o', 'f', ' ', 'l', 'e', 'g', 'e', 'n', 'd', 's']

인덱스 연산

sample_list2를 이용해서 실습. 5월, 7월을 인덱스연산을 통해 추출해보자.

내부항목 변경

sample_list를 이용, 3번째 요소인 ‘c’를 대문자 ‘C’로 바꿔본다.

슬라이스 연산

  • sample_list2를 이용, 1월부터 3월씩 건너뛴 결과를 quarters에 할당
  • sample_list2를 이용, 끝에서부터 3번째 요소까지를 last_three에 할당
  • sample_list2를 이용, 끝에서부터 처음까지(거꾸로) 2월씩 건너뛴 결과를 reverse_two_steps에 할당

리스트 항목 추가 (append)

>>> sample_list.append('e')
>>> sample_list
['a', 'b', 'c', 'd', 'e']

리스트 병합 (extend, +=)

>>> fruits = ['apple', 'banana', 'melon']
>>> colors = ['red', 'green', 'blue']
>>> fruits.extend(colors)
>>> fruits
['apple', 'banana', 'melon', 'red', 'green', 'blue']
>>> fruits = ['apple', 'banana', 'melon']
>>> colors = ['red', 'green', 'blue']
>>> fruits += colors
>>> fruits
['apple', 'banana', 'melon', 'red', 'green', 'blue']

extend대신 append를 사용하면?

특정 위치에 리스트 항목 추가(insert)

리스트 함수 insert(offset)을 사용

  • fruits리스트의 1번째 위치에 ‘mango’를 추가해보자
  • fruits리스트의 100번째 위치에 ‘pineapple’을 추가해보자

특정 위치 리스트 항목 삭제 (del)

파이썬 구문 del을 사용

del은 리스트 함수가 아닌, 파이썬 구문이므로 del <리스트>[오프셋] 형식을 사용한다.

>>> del fruits[0]

값으로 리스트 항목 삭제 (remove)

>>> fruits.remove('mango')

리스트 항목 추출 후 삭제 (pop)

>>> fruits.pop()
>>> fruits.pop(-3)

값으로 리스트 항목 오프셋 찾기 (index)

>>> fruits.index('red')

존재여부 확인 (in)

>>> 'red' in fruits
True

값 세기 (count)

>>> fruits.append('red')
>>> fruits.append('red')
>>> fruits.count('red')
3

정렬하기 (sort, sorted)

  • sort는 리스트 자체를 정렬
  • sorted는 리스트의 정렬 복사본을 반환

리스트 복사 (copy)

  • copy함수
  • list함수
  • 슬라이스 연산[:]

튜플

리스트와 비슷하지만, 정의 후 내부 항목의 삭제나 수정 불가.

튜플 생성

>>> empty_tuple = ()

>>> colors = 'red',
>>> fruits = 'apple', 'banana'

튜플을 정의할 때는 괄호가 없어도 무관하나, 괄호로 묶는것이 좀 더 튜플임을 구분하기 좋다. 또한, 튜플의 요소가 1개일 때는 요소의 뒤에 쉼표(,)를 붙여야 한다.

튜플 언패킹

>>> f1, f2 = fruits

형 변환

tuple함수를 사용 (튜플 생성에는 사용 불가능)

리스트를 튜플로 변환

튜플을 사용하는 이유

  • 리스트보다 적은 메모리 사용
  • 정의후에는 변하지 않는 내부 값

실습

  1. 문자열 ‘Fastcampus’를 리스트, 튜플 타입으로 형변환하여 새 변수에 할당한다.
  2. 1번에서 할당한 리스트, 튜플 변수를 이용해 다시 문자열을 만든다.

Comments