TigerCow.Door

'Python 자료형'에 해당되는 글 3건


안녕하세요. 문범우입니다.

이번에는 파이썬에서 집합 자료형에 대한 이야기를 하겠습니다.

해당 포스팅으로 자료형에 대한 이야기가 마무리 될 예정이며 이후에는 조금 더 빠르게 진도를 나가려 합니다. :)

그 동안 쉬엄쉬엄 조금씩 했더니 너무 느리게 진행되고 있다는걸 최근에서야 깨달은 것 같아서요.

빠르게 기본 개념을 학습하고, 예제를 풀며 심화학습하는 방식으로 진행하겠습니다.



1. 집합 자료형


집합 자료형과 리스트를 혼동하시는 분들도 있는데, 분명히 다른 자료형입니다.

집합 자료형을 통해서 우리는 집합에 관련된 것들을 쉽게 처리할 수 있습니다.

일단 집합 자료형을 만들어 보도록 하겠습니다.

집합 자료형은 아래 사진처럼 set키워드를 통해 만들 수 있습니다.



위의 사진과 같이 set() 의 괄호안에 리스트 또는 문자열을 입력하여 집합 자료형을 만듭니다.



2. 집합 자료형의 특징


그런데, 위의 사진에서 s2라는 집합에 대해 이상한 점을 보셨나요?

우리는 분명, "Hello, world!" 라는 문장을 입력했는데 빠진 글자가 있기도 하고 순서도 엉망이 되었습니다.

이는, 집합 자료형이 가진 아래와 같은 2개의 특징이 있기 때문입니다.


- 중복을 허용하지 않는다.

- 순서가 없다.(Unordered)


우리가 앞에서 학습했던 리스트나 튜플은 순서가 있기 때문에 인덱싱의 개념도 학습하고 이를 통해 자료형의 값을 얻어낼 수도 있었습니다. 하지만 집합 자료형, set 자료형은 순서가 없기 때문에 인덱싱이 존재하지 않습니다. 물론 바로 앞에서 학습했던 딕셔너리 자료형 또한 순서가 없기 때문에 인덱싱이 존재하지 않습니다.

만약, 집합 자료형으로 만든 값에 대해서 인덱싱을 처리하고 싶다면 list() 함수를 통해 집합 자료형을 리스트 자료형, 또는 tuple() 함수를 통해 튜플 자료형으로 변환해주셔야 합니다.



3. 집합 자료형 활용하기


집합 자료형에서는 교집합이나 합집합, 차집합등을 구할 수 있습니다.

각각에 대한 개념은 기초적인 개념이라 생각하고 설명은 생략하겠습니다.


먼저 교집합을 구하기 위한 기호는 '&' 입니다.



또한 아래의 사진 처럼 intersection() 함수를 사용해도 가능합니다.




두번째, 합집합은 '|' 기호를 통해 구할 수 있습니다.

또한, union() 함수를 사용해도 됩니다.




세번째, 차집합은 '-' 기호를 통해 구합니다. 이는 difference() 함수를 사용해도 됩니다.




4. 집합 자료형 관련 함수


집합 자료형과 관련된 함수들 중에서 몇가지만 소개해드리겠습니다.

먼저 하나의 값을 추가하는 add() 함수입니다.



그리고 한번에 여러개의 값을 추가하는 update() 함수입니다.




마지막으로 특정 값을 제거하는 remove() 함수입니다.



이렇게 해서 집합 자료형에 대해 살펴보았습니다.

다음 포스팅에서는 제어문에 대한 이야기를 해보도록 하겠습니다.

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요


안녕하세요. 이번 포스팅에서는 딕셔너리 자료형에 대해서 살펴보도록 하겠습니다.


1. 딕셔너리 자료형


세상에서는 많은 대응 관계를 갖는 단어들이 있습니다. 사람을 예로 들면, "이름" = "홍길동", "생일" = "5월15일" 이런식으로 말이죠. 파이썬에서는 이러한 대응 관계를 표현하기 위해 딕셔너리(Dictionary) 자료형이 존재합니다.

다른 개발 부분에서는 연관 배열(Associative array), 해시(Hash) 라고도 부릅니다.

파이썬에서 이야기하는 딕셔너리 자료형은 말 그대로 사전과 같은 자료형 입니다. 즉, 이름에는 홍길동이, 생일에는 5월15일이 대응 되듯이 파이썬에서는 Key 와 Value가 대응됩니다.

딕셔너리 자료형에서는 앞에서 살펴본 리스트나 튜플과 달리 순차적으로 요소 값을 구하지 않고 Key에 대응되는 Value값을 얻습니다. 


이러한 딕셔너리의 기본적인 모습은 다음과 같습니다.


{Key1:Value1, Key2:Value2, Key3:Value3, ... }


Key와 Value의 여러 개의 대응 관계가 {와 }로 둘러싸여 있습니다. 각각의 요소는 Key와 Value가 대응되는, Key : Value 형식으로 되어 있으며 쉼표로 각각의 요소가 분리됩니다.


실제로 만들어보면 다음과 같습니다.



위의 dic1에서 Key는 'name', 'number', 'score' 이고 Value는 'hong', '01012345678', '58' 입니다.

또한 value에는 정수형을 비롯한 리스트 자료형을 넣을 수도 있습니다.




2. 딕셔너리 추가 및 삭제하기


먼저 위에서 언급하였듯이, 딕셔너리에서는 리스트나 튜플 자료형과 다르게 순서를 따지지 않습니다. 딕셔너리에서는 무엇이 추가되고 어떤 요소가 Key, Value로 존재하는지를 중요시합니다.


먼저 딕셔너리에 요소를 추가하는 기본 형태입니다.


dic[Key] = Value


위의 기본 상태에 따라서 딕셔너리에 요소를 추가해보겠습니다.



이번에는 딕셔너리에서 요소를 삭제하는 방법입니다.


del dic[Key]


이러한 형태를 입력하면 dic이라는 딕셔너리 자료형에서 일치하는 Key값과 Value값을 제거합니다.




3. 딕셔너리 사용하기


그럼 이러한 딕셔너리는 어디에서 사용될까요?

만약 딕셔너리가 없다고 했을 때, 5명의 이름에 대한 핸드폰 번호를 저장하는 것은 어떻게 구현해야 할까요?

깔끔하게 특정한 방법이 잘 생각나지 않습니다.

하지만 우리에게는 딕셔너리 자료형이 있기에 다음과 같이 표현할 수 있습니다.



그럼 이러한 phone_number 딕셔너리에서 person2의 핸드폰 번호를 알고 싶을땐 어떻게 할까요?

딕셔너리에서 Key를 사용하여 Value를 얻는 방법은 다음과 같습니다.



위의 사진과 같이, <딕셔너리이름>[Key] 와 같이 입력하면 해당 딕셔너리에서 Key에 대응되는 Value를 반환합니다.



4. 딕셔너리 주의사항


딕셔너리 자료형을 만들때는 몇가지 주의사항이 있습니다.

먼저, Key의 중복을 피해야 합니다.

Key를 중복으로 입력해도 오류는 발생하지 않지만 중복된 Key 중 1개를 제외한 나머지 모든 Key:Value는 무시됩니다.



두번째는 딕셔너리의 Key에 리스트를 사용하지 못하는 점입니다. 

위에서 리스트 자료형 또한 Value에 입력될 수 있다고 하였지만, Key에는 이용하지 못합니다. 딕셔너리 자료형에서 Key로 쓸 수 있는지 없는지에 대한 기준은 Key가 변하는 값인지 변하지 않는 값인지에 달려 있습니다. 지난 포스팅에서 살펴보았듯이 리스트는 변할 수 있는 자료형입니다. 따라서 리스트 자료형은 Key로써 사용하지 못합니다. 반면에 튜플 자료형은 변하지 않는 값이기에 Key로 사용될 수 있습니다.



이렇게 해서 딕셔너리 자료형에 대해서 알아보았습니다.

다음 포스팅에서는 딕셔너리 자료형에 관련된 함수들에 대해서 알아보도록 하겠습니다.



블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요


안녕하세요.

이번 포스팅에서는 튜플 자료형에 대해서 알아보도록 하겠습니다.


1. 튜플 자료형


지난 포스팅에서 리스트 자료형에 대해서 알아보았습니다. 리스트 자료형은 특정 숫자 또는 문자들이 대괄호('[',']')로 묶인 형태인데요, 튜플 자료형은 이와 다르게 소괄호('(',')')로 묶인 것입니다.

튜플은 어떻게 만들까요?

일단, 튜플은 리스트와 거의 비슷하지만 위에서 언급했던 점과 같이 약간의 차이점만 존재합니다.


- 리스트는 대괄호, 튜플은 소괄호로 둘러쌓인다.

- 리스트는 내부 요소의 생성, 삭제 및 수정이 가능하지만 튜플은 불가능하다.


이러한 튜플은 다음과 같은 모습을 가집니다.



위의 그림에서 세번째 항목과 같이, 튜플에서는 한가지 요소만 가질때에는 하나의 요소 뒤에 콤마(,)를 반드시 붙여줘야합니다.

또한 네번째 항목과 같이 괄호를 생략한 것은 자동으로 튜플로 생성됩니다.


이러한 튜플과 리스트에 있어서 가장 큰 차이점으로는, 위에서 언급하였듯이 요소의 값을 변화시킬 수 있는가 없는가입니다.



2. 튜플 요소 값 삭제 및 변경 오류


튜플 요소 값을 삭제하려 하면 아래와 같은 오류가 발생합니다.



마찬가지로, 튜플 요소 값을 수정하려 하면 아래와 같은 오류가 발생합니다.




3. 튜플 활용하기


리스트 자료형에서 활용했던 인덱싱, 슬라이싱, 더하기, 곱하기가 튜플에서도 가능합니다.


먼저 인덱싱과 슬라이싱입니다.




그리고 튜플 더하기와 곱하기 입니다.




이렇게 해서 튜플 자료형에 대해서도 알아보았습니다.

튜플 자료형은 기본적인 차이점을 제외하고 리스트와 매우 비슷하니 함께 공부해주세요.

다음 포스팅에서는 딕셔너리 자료형에 대해서 알아보겠습니다.

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc

댓글을 달아 주세요