Do it! 자료구조와 함께 배우는 알고리즘 입문 :파이썬를 공부하며 처음 배우는 파이썬도 공부하고 알고리즘도 익히고 일타쌍피 !!!
리스트는 원소를 변경할 수 있는 mutable list형 객체이다. 리스트는 연산자 [ ] 안에 쉼표로 구분하여 표기하여 생성할 수 있다. 원소 없이 [ ]만 사용하면 빈 리스트 생성한다.
list01=[] #[]빈 리스트
list02=[1,2,3] #[1,2,3]
list03=['A','B','C',] #['A','B','C'] 맨 마지막 원소에 쉼표를 써도 됨
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] 집합으로부터 원소를 생성
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]
list12=[None]*5 #[None,None,None,None,None]
리스트의 원소 개수는 리스트를 만들기 전에 반드시 결정해야 한다. 하지만 원소값을 정하지 않는 리스트는 None을 사용하면 만들 수 있다. 마치 list12처럼 말이다.
튜플은 원소에 순서를 매겨 결합한 것으로 원소를 변경할 수 없는 immutable 자료형이다. 튜플은 원소를 쉼표로 구분하여 나열한 뒤 결합 연산자 ()로 둘러싸는 방식이다. 리스트와 마찬가지로 맨 마지막 원소 뒤에 쉼표를 써도 되며, ()만 사용하면 빈 튜플을 생성한다. 튜플은 리스트와 다르게 결합 연산자 ()를 생략할 수 있다.
tuple01=() #빈 튜플
tuple02=1, #(1,)
tuple03=(1,) #(1,)
tuple04=1,2,3 #(1,2,3)
tuple05=1,2,3, #(1,2,3)
tuple06=(1,2,3) #(1,2,3)
tuple07=(1,2,3,) #(1,2,3)
tuple08='A','B','C', #('A','B,','C')
tuple02,tuple03처럼 원소가 1개인 경우 원소 뒤에 쉼표를 반드시 입력해야 한다. 그렇지 않으면 튜플이 아니라 단순 변수로 인식되기 때문이다.
파이썬 내장 함수은 tuple()을 사용하면 문자열이나 리스트 등 여러 가지 자료형 객체를 원소라 하는 튜플을 생성할 수 있다. 빈 튜플은 tuple09=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) 집합으로부터 원소 생성
리스트와 마찬가지로 특정 범위의 값을 원소로 갖는 튜플은 range()함수가 생성하는 수열을 tuple() 함수로 변환하여 만들 수 있다
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)
좌변에는 여러 개의 변수를 놓고 우변에는 리스트나 튜플을 놓으면, 우변의 원소를 좌변의 변수에 한번에 대입할 수 있다. 이와 같이 리스트나 튜플의 원솟값들을 풀어 여러 변수에 대입하는 것을 언팩 unpack이라고 한다.
x=[1,2,3] #리스트 x 선언
a,b,c=x #x를 언팩하여 변수 a,b,c에대입
a,b,c
(1,2,3)
출처 : Do it!자료구조와 함께 배우는 알고리즘 입문-파이썬 편