Dia Egg - Shugo Chara

Algorithm/TeamNote

(Python) 배열, 리스트, 튜플, 세트, 딕셔너리 헷갈리는 것 총 정리

별ㅇI 2023. 6. 11. 15:46
728x90
반응형

계속 list가 아니다 튜플이다 오류를 내보내길래 킹받아서 이참에 헷갈렸던 모든 개념을 정리하고 가고자한다..오히려 좋아!!

 

배열(array)

먼저 python 자체에서는 배열(정적 할당)을 지원하지않는다..!

배열인 Array는 NumPy라는 외부 라이브러리를 사용하여 따로 지원하도록 해줘야한다고 한다.

내가 그동안 문제 풀면서 2차원 배열 2차원 배열...했던 것들이 모두 2차원 리스트 엿던..어쩐지 헷갈린다했다. 

(물론 언어적 의미의 배열의 의미에서는 적절할 수도)

 

리스트(list)

사용하는 괄호 : 대괄호 [ ]

선언방식: a = [1,2,3]

가져오는 방식: a[0]

튜플(tuple)

사용하는 괄호 : 소괄호()

선언방식1 : a=(1, 2, 3)

선언방식2 : a = 1, 2, 3

가져오는 방식 a[0]

 

가져오는 방식이 리스트와 동일하다는 것을 볼 수 있다. 

그럼에도 튜플을 쓰는 이유는 튜플이 데이터를 변경 할 수 없는 자료형이기때문이다. 

a = (1,2,3)으로 선언 후 a[0] =100으로 데이터를 변경하고자 한다면 

TypeError: 'tuple' object does not support item assignment 이라는 오류가 뜨게 된다. 

세트(set)

사용하는 괄호 : 중괄호 {}

선언방식: a = {1, 2, 3}

가져오는 방식: a

 

세트가 가장 다른 점은 인덱스가 없고, 중복이 없다는 점이다. 

예를 들어 리스트나 튜플처럼 a[0]로 값을 가져오려 한다면 

TypeError: 'set' object is not subscriptable 라는 오류가 뜨게된다..!

그럼 어떻게 불려오느냐..! a로 전체를 불러올 수 있다.

print(a)를 하면 {1, 2, 3}을 불러 올 수 있다.

흥미로운 점은 세트에서는 중복이 없기때문에 a = {1, 2, 3, 2}이라고 하더라도 print(a)를 하면 {1, 2, 3}로만 보인다.

딕셔너리(dictionary)

사용하는 괄호 : 중괄호 {}

선언방식: dic = { 'a':1, 'b':2, 'c':3}

가져오는 방식: dic['b']   

딕셔너리는 key와 value사 한 세트이다. 앞이 key!

 

 

728x90
반응형