뮤트 개발일지

Python 자료형 - 순서형 list, tuple (+ set) 본문

Python

Python 자료형 - 순서형 list, tuple (+ set)

박뮤트 2021. 12. 19. 17:52

순서형

순서형: 값들이 연속적으로 저장된 형태, 문자열로 순서형. 그 외에 대표적으로 리스트list와 튜플tuple이 존재한다.

 

순서형의 공통된 연산으로,

인덱싱: a[3]

슬라이싱: a[0:3]

연결하기: + 

반복하기: *

멤버 검사: in

길이 반환: len() 등이 있다.


리스트 list

리스트 = [요소1, 요소2, 요소3, ... ]

[]대괄호를 사용한다.

 

예)

a = [1, 2, 3]

a = ['as', 'sd', 'df']

a = [1, 2, 'as']

a = list()

a = []

 

다중 리스트

예)

a = [1, 2, 3, [1, 2, 3]]

a[3][2] = 3

* 다중 리스트에서도 슬라이싱 인덱싱이 가능하다.

 

리스트의 수정

a = [1, 2, 3]

a[2] = 4

---> a = [1, 2, 4]

 

리스트 관련 함수들

리스트.append(값): 요소 추가

리스트.sort(): 정렬

리스트.reverse(): 뒤집기

리스트.index(값): 위치 반환

del 리스트[위치]: 삭제

 

*sort()와 sorted() 차이

1) sort()는 원래 리스트를 정렬한다.

2) sorted()는 원본 값은 두고, 새로운 메모리에 정렬한 값을 입력한다.

아래 예시를 보며 이해하자.

sort() sorted()
 a1 = [2, 3, 1]
 a2 = a1.sort()
 print(a1) ---> [1, 2, 3]
 print(a2) ---> None
 a1 = [2, 3, 1]
 a2 = a1.sorted()
 print(a1) ---> [2, 3, 1]
 print(a2) ---> [1, 2, 3]

sorted()를 보면, 원본 값인 a1은 두고 새로운 변수 a2에 정렬된 값이 나온다.

반면 sort()에서 a2값을 프린트하면 None이 나온다.


튜플 tuple

리스트 = (요소1, 요소2, 요소3, ...)

()소괄호를 사용한다.

 

예)

a = (1, 2, 3)

a = ('as', 'sd', 'df')

a = (1, 2, 'as')

a = tuple()

a = ()

a = (1,)

a = 1, 2, 3

 

*튜플은 1개의 요소만 가지면 반드시 ,쉼표를 붙여야 하고 괄호를 생략해도 된다.

* 리스트는 값을 변경할 수 있지만 튜플은 변경할 수 없다.


추가, set

set: 정확히는 순서형이 아니다. 순서와 상관없이 넣고, 중복도 허가 하지 않기 때문이다.

 

예)

a = {1, 2, 3}

a = set(['as', 'sd', 'df'])

a = set('hello world')

a = set()

*순서가 없기 때문에 인덱싱과 슬라이싱이 불가하다.

 

set의 연산

set.add(값): 값 추가

set.clear(): 전제 제거

set1.union(set2): 합집합

set1.intersection(set2): 교집합

set1.difference(set2): 차집합


형변환

set(): set으로 변환

list(): list로 변환

tuple(): tuple로 변환