Python/Algorithm

[Python_Algorithm]리스트와 튜플 알아보기(자료구조와 함께 배우는 알고리즘 입문)

bangle0621 2021. 1. 23. 17:13

보통 다른 언어에서 배열을 '리스트'로 구현하는 것과 달리, 파이썬에서 배열은 '리스트'와 '튜플'로 구현할 수 있다.

 

리스트의 기초

리스트는 변경할 수 있는 '뮤터블'list형 객체

 

리스트는 연산자 [] 안에 원소를 쉼표로 구분하여 생성할 수 있다. 원소 없이 [] 만 사용한다면 빈 리스트가 생성된다. 

# 리스트의 기초
list01 = []  #빈 리스트
list02 = [1,2,3]   #[1,2,3]
list03 = ['A','B','C',]    #마지막 원소에 쉼표를 사용해도 됨
print(list01)
print(list02)
print(list03)

list03처럼 쉼표는 맨 마지막 원소 뒤에 쓸 수 있다. 

 

파이썬 내장 함수 list() 를 사용하여 문자열이나 튜플 등 다양한 자료형 객체를 원소로 하는 리스트를 생성할 수 있다.

list04  = list()   #빈 리스트
list05 = list('ABC')   #['A','B','c']  문자열의 각 문자로부터 원소를 생성
list06 = list([1,2,3])   #[1,2,3] 리스트로부터 원소를 생성
list07 = list((1,2,3))   #[1,2,3] 튜플로부터 원소를 생성
list08 = list({1,2,3})   #[1,2,3] 집합으로부터 원소를 생성
print(list04)
print(list05)
print(list06)
print(list07)
print(list08)

range를 사용하여 특정범위의 정수 리스트를 생성할 수 도 있다.

list09 = list(range(7))    #[0,1,2,3,4,5,6]
list10 = list(range(3,8))    #[3,4,5,6,7]
list11 = list(range(3,13,2))  #[3,5,7,9,11]
print(list09)
print(list10)
print(list11)

None 을 사용하면 원소가 정해지지 않은 배열을 생성할 수 있다. 다만 원소 개수는 리스트를 만들기 전에 반드시 정해야 한다. 

list12 = [None]*5
print(list12)

 

튜플의 기초

튜플은 원소에 순서를 매겨 결합한 것. 원소를 변경할 수 없는 이뮤터블 자료형이다.

tuple01 = ()  #()빈 튜플
tuple02 = 1,  #(1,)
tuple03 = (1,) #(1,)
print(tuple01)
print(tuple02)
print(tuple03)

tuple02,tuple03 처럼 원소가 1개인 경우 원소 뒤에 쉼표를 반드시 입력해야 한다.
쉼표가 없으면 튜플이 아니라 단순 변수로 여기기 때문.

tuple04 = 1,2,3    
tuple05 = 1,2,3,
tuple06 = (1,2,3)
tuple07 = (1,2,3, )
tuple08 = 'A','B','C',
print(tuple04)
print(tuple05)
print(tuple06)
print(tuple07)
print(tuple08)

파이썬 내장함수인 tuple()을 사용하면 문자열이나 리스트 등 여러가지 자료형 객체를 원소로 하는 튜플을 생성할 수 있다.

tuple09 = tuple()   #()빈 튜플
tuple10 = tuple('ABC')  #('A','B','C') 문자열의 각 문자로부터 원소를 생성
tuple11 = tuple([1,2,3]) #(1,2,3)리스트로부터 원소를 생성
tuple12 = tuple({1,2,3}) #(1,2,3)집합으로부터 원소를 생성
print(tuple09)
print(tuple10)
print(tuple11)
print(tuple12)

리스트와 같이  range를 사용하여 특정 범위의 값을 원소로 갖는 튜플을 생성할 수 있다.

tuple13 = tuple(range(7))  #{0,1,2,3,4,5,6}
tuple14 = tuple(range(3,8))  #(3,4,5,6,7)
tuple15 = tuple(range(3,13,2))  #(3,5,7.9.11)
print(tuple13)
print(tuple14)
print(tuple15)

 

리스트와 튜플 풀어내기

좌변에 여러개의 변수를 놓고 우변에는 리스트나 튜플을 놓은다. 우변의 원소를 좌변의 변수에 한번에 대입할 수 있다. 리스트나 튜플의 원솟값을들 풀어 여러 변수에 대힙하는 것을 '언팩'이라고 한다.

x = [1,2,3]   
a,b,c = x
a,b,c