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

