파이썬은 C언어나 자바스크립트처럼 배열이라는 개념이 존재하지 않는다.
다만,list
tuple
과 같은 자료형을 통해 배열을 사용할 수 있다.
배열과 가장 가까운 형태의 컨테이너이며, 사실상 모든 자료형이 들어갈 수 있다.
index로 표현하며, 사용 범위가 넘어갈 경우 error가 난다.
my_list = [1, ‘lee’, [3, ‘taekwon’]]
다차원 배열로 접근 가능하다
my_list[2][0] -> 3
slicing
을 통해 원본을 훼손하지 않은 채 변형하여 가져올 수 있다.
my_list = [1, ‘lee’, [3, 'taekwon', [5]], True, 'kang']
print(my_list[0:4:2])
# 마지막 값 2는 step
# step? 몇 칸 뛰어 갖고 올 거냐?
[1, [3, 'taekwon', [5]]]
[:]
형태로 쓰인다my_list = [1, ‘lee’, [3, 'taekwon', [5]], True, 'kang']
print(my_list[::-1]) -> 맨 뒤에서부터 맨 앞까지 가져 온다
['kang', True, [3, 'taekwon', [5]], 'lee', 1]
tuple
은 list와 비슷하게 요소들을 저장할 때 쓰인다.my_tuple = (3, 5, 9)
보시다시피 list와 차이점은 []
에 ()
를 사용한다.
Tuple 의 요소들을 읽어들이는 방법과 slicing 방법은 모두 list 와 동일하다.
my_tuple[0]
my_tuple[1:2]
일반적으로 2~5개의 요소를 저장할 때 사용되며, 특정 데이터를 즉석으로 표현하고 싶을 때, 즉, 수정이 필요 없는 간단한 형태의 데이터에 사용된다.
coords = [ (4,4), (5,2), (-2, 2), (-3, -4) ]
list처럼 다양한 자료형의 요소들을 저장할 수 있다.
하지만, 차이점이 존재한다.
1. 요소들이 순서대로 저장되어 있지 않다(not iterable) -> for 문
에서 출력하면 무작위로 나온다
2. 인덱싱도 없어, 몇 번째 요소를 읽어들일 수 없다.
3. 중복된 값을 저장할 수 없으며, 시도할 경우 새로운 요소가 이전 요소를 대체한다.
set1 = {1, 2, 3}
교집합(intersection
또는 &
)이나 합집합(union
또는 |
), 차집합(difference
또는 -
사용)를 구할 때 활용이 가능하다
말 그대로 사전처럼 단어와 뜻의 형태를 갖고 있다.
파이썬의 dictionary는 key
와 value
를 갖는다.
my_dict = { "key1" : "value1", "key2" : "value2"}
list와는 다르게 요소를 수정하고 삭제할 때 index가 아닌 key
를 사용한다.
my_dict = { "one": 1, 2: "two", 3 : "three" }
my_dict["four"] = 4 # 요소 수정
del my_dict["one"] # 요소 삭제
print(my_dict)
> {2: 'two', 3: 'three'}
key
에 list
나 dictionary
는 재할당 되어 변경될 수 있으므로 들어갈 수 없다
dict
와 다르게 모두 key와 value를 갖지 않고 값으로만 저장한다.[]
, tuple은 ()
){}
를 사용해 표현한다.