따로따로 흩어진 변수를 하나로 묶어서 사용하여 코드를 쉽고 효율적으로 작성할 수 있다.
# 일반
item1 = '연필'
item2 = '지우개'
item3 = '볼펜'
item4 = '책가방'
# 배열 : list 선언
items = ['연필', '지우개', '볼펜',' 책가방']
리스트는 원소(element)를 변경할 수 있는 뮤터블(mutable) 리스트(list)형 객체이다.
# 빈 리스트 생성
list1 = []
list2 = list()
# 리스트 안에 원소 생성
list3 = ['a', 'b', 'c']
list4 = [1,2,3]
# python 내장함수 list()를 사용하여 생성
list5 = list('abc')
list6 = list([11,22,33])
list7 = list((11,22,33))
list8 = list({11,22,33})
범위를 지정하여 리스트를 생성할 수 있다.
# 0~5 까지 생성
list1 = list(range(6))
print(f'list1 : {list1}')
# 1~9 까지 생성
list2 = list(range(1,10))
print(f'list2 : {list2}')
# 1~9 까지 생성 & step2 (2칸 걸러 생성)
list3 = list(range(1,10, 2))
print(f'list3 : {list3}')
# 0~15 까지 생성 & step 3 (3칸 걸러 생성)
list4 = list(range(0, 16, 3))
print(f'list4 : {list4}')
리스트 안에 원소(element)값을 정하지 않고 생성할 수 있다.
list1 = [None] * 9
print(list1)
원소에 순서를 매겨 결합한 것으로 원소를 변경할 수 었는 이뮤터블(imutable) 자료형이다.
즉, 변경과 삭제가 불가능하다.
# 빈 튜플 생성
tuple1 = ()
tuple2 = tuple()
# 튜플에 원소 생성
tuple3 = (10,20,30)
tuple4 = ('A','B','C', )
tuple5 = 10, 20, 30
tuple6 = 10, 20, 30,
tuple7 = 'A', 'B', 'C'
# python 내장함수 tuple()를 사용하여 생성
tuple8 = tuple('abcde')
tuple9 = tuple([11,22,33,44])
tuple10 = tuple({11,22,33,44})
튜플의 원소가 1개인 경우 python이 단순 변수로 이해하기 때문에 반드시 마지막에 ,(쉼표)를 입력해야 한다.
범위를 지정하여 튜플을 생성할 수 있다.
# 0~99 까지 생성
tuple1 = tuple(range(100))
# 10~20 까지 생성
tuple2 = tuple(range(10, 21))
# 10~100 까지 생성 & step 10 (10칸 걸러 생성)
tuple3 = tuple(range(10, 101, 10))
# 10~30 까지 생성 & step 3 (3칸 걸러 생성)
tuple4 = tuple(range(10, 31, 3))
🔎 참고자료
W3Schools Unpack Tuples
좌변에는 여러 개의 변수를 놓고 우변에는 리스트나 튜플을 놓으면, 우변의 원소를 좌변의 변수에 한번에 대입 가능하다.
# 리스트
name = ['kate', 'smith', 'luna', 'amy', 'selena']
# 리스트 name의 원소를 n1, n2, n3, n4 ,n5에 하나 씩 대입
n1, n2, n3, n4, n5 = name
print(n1, n2, n3, n4, n5)
# 튜플
books = ('익스플로링 아두이노', '의학 세계사', '서양 음악의 이해', '회로이론')
# 튜플 book의 원소를 book1, book2, book3, book4에 하나 씩 대입
book1, book2, book3, book4 = books
print(book1, book2, book3, book4)
인덱스의 첫 시작은 무조건 0부터 시작이다. 만약 인덱스가 뒤에서 시작하면 -1부터 시작한다.
배열 원소를 하나씩 차례대로 주목하여 살펴보는 방식을 스캔(scan) 알고리즘이라 한다.
스캔은 주사 또는 트래버스(traverse)라고도 한다.
# 건네받은 매개변수 a의 자료형은 Sequence
# 반환하는 것은 임의의 자료형 Any
def max_of(a: Sequence) -> Any
🔎 참고자료
파이썬 코딩 도장 파이썬 타입 어노테이션
타입에 대한 힌트를 알려주는(hinting) 정도이다. 즉, 함수 어노테이션은 함수의 매개변수와 반환값을 나타내는 역할을 한다.
# 함수의 return값을 -> 타입으로 명시할 수 있다.
def cal_multi(a: int, b: int) -> int:
return a*b
# 현재 스크립트 파일이 실행되는 상태를 파악하기 위해 사용한다.
# 즉, 최초 시작점 설정
if __name__ == '__main__'
reverse()
함수 이용a = [1,2,3,4,5,6]
a.reverse()
print(a)
reversed()
함수 이용a = [1,2,3,4,5,6]
result = list(reversed(a))
print(result)
10 종류 0 1 2 3 4 5 6 7 8 9
으로 표현한다.
8종류 0 1 2 3 4 5 6 7
로 표현한다.
16종류 0 1 2 3 4 5 6 7 8 9 A B C D E F
로 표현한다.
🔎 참고자료
wikidocs 깊은 복사와 얕은 복사
programiz shallow copy and deep copy
참조값만 복사하는 방식 ▶ 객체가 참조 자료형 멤버를 포함할 경우 얕은 복사
즉, 참조가 같다 == id가 같다
전체 복사 ▶ 객체가 갖는 모든 멤버(값과 참조 형식 모두)를 복사
즉, 참조가 다르다 == id가 다르다