파이썬에서 데이터를 불러왔을 때 문자가 깨져서 보이는 경우때문에 들어오신 경우 인코딩 형식에 문제가 있을 수 있습니다. 길지 않은 내용이니 천천히 읽어보시고 참고하시기 바랍니다.(해결방법은 맨 아래에 있습니다)

 

데이터 포맷은 크게 "텍스트 데이터"와 "바이너리 데이터"로 나눌 수 있습니다.

 

텍스트 데이터란 일반적으로 텍스트 에디터로 편집할 수 있는 데이터 포맷을 나타냅니다. 주로 일반적인 자연 언어(한국어, 영어 등)와 숫자 등으로 구성됩니다. 특수하게 줄바꿈과 탭 등의 제어 문자도 포함되어 있는데, 그 밖에는 모두 에디터에서 시각적으로 확인할 수 있는 데이터 형식입니다.

 

프로그래밍 언어의 소스코드도 텍스트 데이터라고 말할 수 있습니다. XML/JSON/YAML/CSV처럼 웹에서 주로 사용되는 데이터 포맷은 텍스트 데이터를 기반으로 합니다.

 

바이너리 데이터란 문자와 상관 없이 데이터를 사용할 수 있는 데이터 영역을 활용하는 데이터 형식입니다.

 

바이너리 데이터는 문자에 할당되는 영역 외의 영역도 사용하므로 일반적인 텍스트 에디터로는 열 수 없습니다. 또한 사람이 시각적으로 확인해도 의미를 알 수 없는 문자열로 표현됩니다. 이에 대한 예시를 살펴보겠습니다.

 

다음과 같이 a.bin에 data = 100이라는 내용과 a.txt에 100이라는 내용을 적은 후 저장해서 용량을 살펴보겠습니다.

a.bin 저장 화면
a.txt 저장 화면

 

그리고 나서 용량을 확인해 보니

a.bin의 용량은 1byte가 나왔고,

 

a.txt의 용량은 3byte가 나왔습니다.

 

똑같은 100을 표현하는데 있어 텍스트는 3byte, 바이너리는 1byte이므로 데이터를 저장하는데 있어 바이너리가 효율적이라는 것을 알 수 있습니다.

 

텍스트 데이터 및 바이너리 데이터의 장단점을 표로 비교해보면 다음과 같습니다.

데이터 종류 장점 단점
텍스트 데이터 텍스트 에디터가 있다면 편집할 수 있습니다. 또한 설명을 포함할 수 있으므로 가독성이 높습니다. 바이너리 데이터에 비해 크기가 큽니다.
바이너리 데이터 텍스트 데이터에 비해 크기가 작습니다. 텍스트 에디터로 편집할 수 없습니다. 어떤 바이트에 어떤 데이터가 있다고 정의해야 합니다.

오늘날의 CPU는 기억 매체의 용량이 큽니다. 즉 1byte를 처리하나 3byte를 처리하나 처리 속도에는 큰 차이가 없습니다. 따라서 누구나 열어볼 수 있고 편집할 수 있게 텍스트 데이터를 사용하는 것이 더 좋다고 생각합니다.

 

하지만 웹에서는 크기가 조금 크더라도 텍스트 데이터가 더 편리하기 때문에 더 많이 사용될 것 같지만, 사실 대부분이 바이너리 데이터를 사용합니다. 왜냐하면 이미지와 동영상 같은 파일은 용량이 크므로 최대한 서버의 부하를 줄이기 위해 크기를 압축해야 하기 때문입니다. 물론 텍스트 기반으로 하는 이미지 형식도 있지만 거의 사용되지 않습니다. 이미지 또한 이너리 형식을 사용하는 것이 훨씬 실용적이기 때문입니다.

 

시각적으로 확인할 수 있는 텍스트 데이터도 주의할 것이 있습니다. 바로 문자 인코딩입니다.

 

어떠한 데이터를 다운로드 받은 후 불러올 때 문자가 깨지는 경우를 보신적이 있으실텐데요. 데이터를 저장한 사람이 저장할 때 인코딩을 UTF-8 혹은 EUC_KR로 하냐에 따라 저장되는 데이터는 전혀 다르기 때문입니다.

 

그래서 EUC_KR로 저장을 했는데 불러올 때 UTF-8로 불러온다면 문자가 깨진듯한 현상을 볼 것입니다.

만약 그러하다면 UTF-8로 불러오신 분은 EUC_KR로 바꿔보신 후 다시 실행해보시고, EUC_KR로 불러오신 분은 UTF-8로 바꿔보신 후 다시 실행해보시면 해결이 잘 될수도 있으니 참고하시기 바랍니다.

 

최근에는 텍스트 데이터 기반으로 하는 데이터는 모두 UTF-8로 인코딩이 되어 있습니다. 이는 HTML5 표준에서 UTF-8을 사용하는 것을 권장하기 때문입니다. 하지만 한국에서는 아직도 EUC_KR을 사용하는 경우가 많기 때문에 이 부분에 주의하시기 바랍니다.

'Data organization > 개념정리' 카테고리의 다른 글

에러와 예외 처리  (0) 2021.02.17
함수란?(Function)  (0) 2021.02.12
Comprehension(리스트, 딕셔너리)  (0) 2021.02.12
파이썬 연산(집합)  (0) 2021.02.03
딕셔너리(Dictionary)  (0) 2021.02.03

람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어다.

 

람다 함수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법.

 

람다 함수(익명 함수 (Anonymous functions))이름을 가질 필요가 없다.

 

람다 함수는 코드가 간결하다는 장점이 있어 사용 시 코딩을 깔끔하게 할 수 있다 

 

일반 함수와 람다 함수를 비교할 수 있게 예제를 살펴보면,

short_function(x)라는 함수가 있고, equiv_anon(x)라는 람다 함수가 있다. 이 둘에 '3'이라는 숫자를 넣어주면 6이라는 같은 결과값을 얻게 된다.

 

 

또 다른 활용으로는 함수에 list와 람다 함수를 전달하면 그에 맞는 결과값을 가져올 수 있다.

apply_to_list에 ints와 람다 함수를 전달하여 [8, 0, 2, 10, 12]의 리스트가 완성되었다.

 

만약 수식이 자주 바뀌는 경우 이러한 식으로 람다 함수만 변경하여 전달한다면 원하는 리스트를 만들 수 있게 된다.

 

함수는 파이썬에서 코드를 재사용하고 조직화하기 위한 가장 중요한 수단이다.

 

같은 일을 반복하거나 비슷한 코드를 한 번 이상 실행해야 할 것이 예상되면, 재사용 가능한 함수를 작성하는 것이 더 나을 것이다.

 

함수를 쉽게 설명하기 위해 옷을 판매하는 회사와 공장에 비유해보겠다.

 

일단 어느 한 회사가 옷을 생산하기 위해 공장에 OEM으로 주문을 넣었다고 생각을하자,,

 

회사는 옷을 가공하기 위한 자재를 직접 공장에 전달한다.

 

이 자재를 이용하여 공장에서는 설계에 맞게 옷을 제작하고 제작이 완성된 옷을 다시 회사에 넘기게 된다.

 

함수 역시 같은 원리이다. 함수에 필요한 변수를 넣어주고 조건문을 거쳐 나온 값을 return으로 받게 되는 것이다.

(이 때 함수는 파이썬 명령들의 집합과 연관된 이름을 지어 좀 더 가독성이 좋은 코드를 작성할 수 있도록 해준다.)

 

예를 들어 함수를 작성해보면 다음과 같다.

함수명은 calculator로 가독성이 좋아지도록 함수의 성질과 연관된 이름으로 지었다.

 

함수를 살펴보면 x, y, z=1.5로 되어있다.(x,y는 default값이 없고, z는 default값이 1.5)

 

그래서 첫 번째 (10, 20, z=3)이라는 변수를 calculator라는 함수에 넣어줬고 결과값으로 90을 얻었다.

 

계산을 해보면 z > 1이므로 3 * (10 + 20) = 90이 된다.

 

두 번째 변수(0.1, 0.4, z=1) 역시 z의 조건이 z는 1 이하이므로 1 / (0.1 + 0.4) = 2 라는 결과를 얻을 수 있었다.

 

그렇다면 함수에 변수를 넣는 방식을 4가지 더 실험을 해보았다.

 

1. 'z='을 없앤 경우

2. z의 변수를 기입하지 않은 경우

3. x=, y= 이라는 변수를 넣어준 경우

4. z를 맨 처음 그리고 x를 마지막에 넣은 경우

 

1번의 경우 'z='이라는 단어를 굳이 쓰지 않아도 같은 결과값을 얻을 수 있었다.

3 * (1 + 2) = 9로 결과값이 맞게 나왔다.

 

2번의 경우 z의 변수를 넣어주지는 않았지만 기존에 default값으로 1.5가 주어졌기 때문에 z=1.5로 계산되어 결과값을 얻었다.

1.5 * (10 + 20) = 45로 결과값이 맞게 나왔다.

 

3번의 경우 x=, y=이라고 다른 방식으로 넣었지만 역시나 3 * (1 + 2) = 9로 결과값이 맞게 나왔고

 

마지막 4번의 경우,

z를 맨 처음, x를 맨 마지막에 써줘도 변수명을 정확히 기입을 해주었기 때문에 그에 따른 값으로 결과값이 나왔다

1 / (2 + 3) = 0.2로 결과값이 맞게 나왔다.

 

위에서 공부한 내용을 바탕으로 실제 데이터 가공을 하기 위해 어떻게 사용되는지 살펴보자.

states에 불규칙한 대소문자 및 기호 그리고 띄어쓰기를 넣어두고 re라는 표준라이브러리를 불러온 후, 문자열을 가공해주는 함수를 만들었다.

 

strip()은 value안의 문자열에 있는 양쪽 끝에 있는 어쓰기를 제거해주고,

 

sub()에서 첫 번째 ('[!#?]')의 의미는 이 안의 기호 대신 두 번째 ('')로 대체하라는 의미이다. 즉, !#?의 기호를 없애라는 의미로 해석할 수 있다.

 

마지막으로 title()은 문자열이 시작하는 첫 번째 문자만 대문자, 나머지 문자는 전부 소문자로 만들어 주는 명령어이다.

 

states라는 리스트를 함수 clean_strings(states)로 실행하니 데이터가 깔끔하게 가공된 것을 알 수 있다.

Comprehension은 파이썬에서 많이 사용하는 기능이다.

 

왜냐하면 가독성이 좋기 때문이다.

 

가장 먼저 살펴볼 list comprehension의 형태는 result = [expr for val in collection if condition이며,

 

이를 for문으로 나타낸다면

 

result = []

for val in collection:

    if condition:

        result.append(expr)

 

위와 같이 result의 결과값은 같지만, 표현식은 comprehension이 훨씬 가독성이 좋은 것을 알 수 있다.

 

예를 들어 문자열 리스트에서 문자열의 길이가 2초과인 문자열만 추출하는 코딩을 한다면,

x.upper()는 x값을 대문자로 표시하라는 의미이며, strings안의 x를 추출해라 만약 len(x), 즉 문자열의 갯수가 2를 초과할 경우는 의미이며, 결과값은 문자열이 최소 3개 이상인 값으로 리스트가 만들어졌다.

 

이를 for문으로 사용한다면

 

result = []

for x in strings:

    if len(x) > 2:

        result.append(x)

print(result)

 

이런식으로 최소 5줄이 된다. 가독성 부분이나, 작성하는 부분이나 Comprehension이 더 편리하다.

 

하지만 처음에 익숙하지 않다면 Comprehension보다는 for문으로 충분히 연습을 한 후 Comprehension을 사용해야 코딩을 이해하는데 더 큰 도움이 될 것이다.

 

Comprehension은 리스트 말고도 딕셔너리에도 적용이 되는데, 형태는 다음과 같다

dict_comp = {key-expr : value-expr for value in collection if condition}

 

집합에서는 대괄호 대신 중괄호를 쓴다는 점만 빼면 리스트 Comprehension과 동일하다.

set_comp = {expr for value in collection if codition}

 

위에서 사용한 strings를 사용하여 집합으로 추출해보면,

집합은 간단하게 strings내의 문자열 갯수를 집합으로 추출했다.

 

이번에는 strings내의 값을 활용하여 딕셔너리 형태로 추출해보면,

enumerate를 활용하여 strings의 요소를 하나씩 빼올때마다 그 값을 key값으로 지정하고, 그에 대한 순서를 value값으로 지정하여 딕셔너리를 만들었다.

 

 

만약 리스트 안의 요소가 많이 있다면 눈으로 원하는 자료를 추출하는 것은 불가능 할 것이다. 다음은 조금 더 복잡한 list comprehension을 작성해보도록 하겠다.

all_data안에는 여러가지 이름이 들어있다.

 

하지만 여기서 원하는 데이터는 'e'가 두번 이상 들어간 이름을 찾기를 원하고

 

name.count('e') >= 2라는 조건을 주어 결과값을 name_of_interset에 추가하는 모습이다.

 

결과값은 'Steven'이라는 값이 추출되었고, 이는 우리가 찾던 결과값과 동일했다.

세계에는 굉장히 다양한 웹 서비스가 있습니다. 날씨 정보, 상품 데이터, 주가, 환율 등의 다양한 정보를 웹에서 찾을 수 있습니다. 이러한 웹 사이트 중에는 웹 API를 제공하는 곳이 있습니다.

 

웹 API는 어떤 사이트가 가지고 있는 기능을 외부에서도 쉽게 사용할 수 있게 공개한 것을 의미합니다. 원래 API(Application Programming Interface)는 어떤 프로그램 기능을 외부의 프로그램에서 호출해서 사용할 수 있게 만든 것을 의미합니다. 간단하게 서로 다른 프로그램이 기능을 공유할 수 있게 절차와 규약을 정의한 것 입니다.

 

웹 API도 비슷합니다. 이랍ㄴ적으로 HTTP 통신을 사용하는데, 클라이언트 프로그램은 API를 제공하는 서버에 HTTP 요청을 보냅니다. 그러면 서버가 이러한 요청을 기반으로 XML, JSON 형식 등으로 응답합니다.

 

대부분의 클라이언트 프로그래밍 언어는 XML과 JSON 형식의 데이터를 쉽게 처리할 수 있습니다. 따라서 굉장히 쉽게 원하는 형태로 사용할 수 있습니다.

 

하지만 왜? 사이트에서는 API를 제공을 해주는 것일까요? 

 

물론 개발자와 제공자의 공동 이익을 목적으로 선의를 가지고 API를 제공하는 서비스도 있습니다.

 

예를 들면 게임 League of Legend의 경우 과연 전적검색을 위한 자료는 어디서 가져오는 것일까요?

 

전적 검색을 제공하는 사이트에서는 Riot에서 제공하는 API를 제공 받아 게임 유저들에게 필요한 정보만을 추출하고 정리해서 보여주는 것입니다.

 

그 밖에도 그 정보를 바탕으로 승률, 픽률, 상대 상성등도 상황에 맞는 데이터를 추출하여 분석하고 그것을 유저들에게 보여주는 것입니다.

 

게임 말고도 옥션이나 지마켓, 11번가, 아마존(amazon)등의 사이트 역시 상품 검색 API를 제공하는데 이를 제공함으로써 개발자들이 관련된 어플리케이션을 만들면 판매 기회를 조금이라도 올릴 수 있게 됩니다.

 

또 다른 이유는 API를 제공하는 웹 사이트의 경우 좋은 정보를 가지고 있다는 의미가 될 것이고, API 서비스를 제공하지 않는 경우 크롤링의 표적이 되기 때문입니다.

 

만약 크롤링을 많은 사람들이 하게 된다면 서버에 부담이 될 것이기 때문에 미리 웹 API서비스를 제공해 주기도 합니다.

 

방금까지는 장점에 대해서만 말씀드렸습니다. 하지만 웹 API도 단점은 분명히 있는데요, 첫 번째는 웹 API 제공자의 사정으로 인해 웹 API가 없어지거나 사양 변경이 일어날 수 있다는 것입니다. 애플리케이션을 개발할 때는 이를 반드시 고려해야 합니다. 편리하게 사용하던 웹 API가 어느 날 갑자기 사라지면 애플리케이션이 동작하지 않기 때문입니다. 물론 이는 웹 사이트를 직접적으로 스크레이핑할 때도 발생할 수 있는 문제입니다.

 

 

 

'Basic' 카테고리의 다른 글

HTTP, 쿠키, 쎄션이란?  (0) 2021.01.29

오늘은 전 세계의 모든 날씨 정보 등을 가지고 있는 OpenWeatherMap을 사용해서 서울의 날씨정보에 대해 알아보려고 합니다.

 

일단 앞서 OpenWeatherMap을 사용하려면 개발자 등록을 하고 API키를 발급받아야 합니다.

 

http://openweathermap.org/ 에 가셔서 가입을 누르시면 어디에 사용할 지 물어보는데 적당한 답변을 주시고 OK버튼을 눌러주세요 그리고 오른쪽 상단에 본인 아이디를 누르시면 여러가지 메뉴가 나오는데 거기서 [My API Keys]라는 탭에서 API 키를 확인하실 수 있습니다.

 

제 API key는 개인정보 보호를 위해 지웠지만 다음과 같이 key를 얻을 수 있고, 이 key를 사용하여 데이터를 가져올 수 있습니다.

 

OpenWeatherMap은 기본적으로 유료 API이지만 현재 날씨, 5일까지의 날씨는 무료로 사용할 수 있습니다. 다만 무료로 사용시 1분에 60번만 호출할 수 있습니다. 실제 애플리케이션에 적용하는 것이 아닌 연습용으로는 충분할 것입니다.

 

 

 

 

 

 

1. request, json을 import 한 후, API키를 지정 후 requests를 활용하여 데이터 받아오기

 

그리고 url을 지정을 해 주는데, 저는 일단 한국에 있는 서울의 날씨 정보만 가져올 것이기 때문에 url에 직접 입력을 했습니다. url = 'http://api.openweathermap.org/data/2.5/weather?q=(도시,나라)&APPID=(openweathermap으로부터 발급받은 key)' 이런식으로 입력을 해줍니다.  

 

k2c는 화씨를 섭씨로 바꾸기 위한 간단한 수식이며, requests.get(url)을 이용하여 데이터를 받아옵니다. 결과가 200이 나왔다는 것은 정상적으로 데이터를 받아왔다는 것을 의미합니다.

 

2. jason을 이용한 결과값

 

받은 데이터는 풀어주면 다음과 같은 결과를 볼 수 있습니다.

 

데이터는 기본적으로 딕셔너리와 리스트로 되어있기 때문에 이를 잘 활용하면 원하는 데이터를 보기 좋게 추출할 수 있습니다.

 

3. 원하는 데이터 정리

 

data의 내용을 보면 coord는 위도 및 경도, weather 키 값은 id, 날씨, 설명, 아이콘 그리고 main에는 온도, 체감온도, 최저 및 최고온도, 압력, 습도 등등 그 밖에의 여러 정보들을 확인하실 수 있습니다.

 

저는 그 중 도시명, 날씨, 최저 및 최고 기온, 습도, 기압, 풍향, 풍속등만 추출하였고, 다음과 같은 결과값을 얻었습니다.

'AI > 데이터 수집' 카테고리의 다른 글

Selenium으로 스크레이핑하는 방법  (0) 2021.02.02
Selenium을 활용한 로그인  (0) 2021.02.02
requests 모듈의 메서드  (0) 2021.01.31
requests를 사용하여 로그인  (0) 2021.01.31
상대경로 및 절대경로  (0) 2021.01.26

 

집합유일한 원소만 담는 정렬되지 않은 자료형이다.

 

사전과 유사하지만 값은 없고 키만 가지고 있다고 생각하면 된다.

 

1. 집합을 생성하는 2가지 방법

(첫 번째 방법은 대괄호 내 key값 없이 입력을 하는 방법이고, 두 번째 방법은 set([])내 입력을 하는 방법이다.)

 

2. 집합 역시 객체가 변경 불가능이여야 하므로, 리스트는 집합이 될 수 없다.

(my_data는 리스트이며, x는 집합이다. 아래와 같이 my_data와 x는 서로 같지 않다는 결과값이 나왔고(False), my_data를 튜플로 하여 my_set으로 설정해주니 x와 my_set은 같다는 결과값(True)이 나왔다.)

 

3. 파이썬 집합 연산

여기서 a와 b라는 집합이 있다고 가정을 하고 아래 표를 작성

함수 대체 문법 설명
a.add(x) N/A a에 원소 x를 추가
a.clear() N/A 모든 원소를 제거하고 빈 상태로 되돌린다.
a.remove(x) N/A a에서 원소 x를 제거
a.pop() N/A a에서 임의의 원소를 제거, 비어 있는 경우 KeyError를 발생시킴
a.union(b) a | b a와 b의 합집합
a.update(b) a |= b a에 a와 b의 합집합을 대입
a.intersection(b) a & b a와 b의 교집합
a.intersection_update(b) a &= b a에 a와 b의 교집합을 대입
a.difference a - b a와 b의 차집합
a.difference_update(b) a -= b a에 a와 b의 차집합을 대입
a.symmetric_difference(b) a ^ b a와 b의 대칭차집합
a.symmetric_difference_update(b) a ^= b a에 a와 b의 대칭차집합을 대입
a.issubset(b) N/A a의 모든 원소가 b에 속할 경우 True
a.issuperset(b) N/A a가 b의 모든 원소를 포함할 경우 True
a.isdisjoint(b) N/A a와 b 모두에 속하는 원소가 없을 경우 True

 

'Data organization > 개념정리' 카테고리의 다른 글

함수란?(Function)  (0) 2021.02.12
Comprehension(리스트, 딕셔너리)  (0) 2021.02.12
딕셔너리(Dictionary)  (0) 2021.02.03
자료형 함수  (0) 2021.01.28
리스트 활용 방법  (0) 2021.01.27

 

dict는 파이썬 내장 자료구조 중에서 가장 중요하다.

 

일반적으로는 해시맵 또는 연관 배열이라고 널리 알려져 있다.

 

딕셔너리는 유연한 크기를 가지는 키(key) - 값(value)쌍으로, 이 둘은 모두 파이썬 객체다.

 

1. 딕셔너리 생성 방법

빈 딕셔너리를 만들 경우 중괄호{}를 사용하여 만들어주고, 직접 입력시 key, value값을 :로 구별하여 입력해준다.

 

2. 딕셔너리에 key, value값 추가

기존에 만들어진 d1 딕셔너리에 값을 추가해 보도록 하겠다.

(key으로는 7, 5, 'dummy'를 추가하였고, value값으로는 'an integer', 'some value', 'another value'를 추가하였다.)

 

3. 딕셔너리에 key, value값 제거

del이나 pop을 이용하여 딕셔너리의 값을 제거할 수 있다.

(del을 이용하여 key값 중 5를 제거하였고, pop을 이용하여 'dummy'라는 key값을 제거하였다. del을 사용하여 제거했을 때는 반환값이 나오지 않지만, pop을 이용하면 제거된 key의 value값이 반환되어 진다.)

 

4. 딕셔너리 내 key값 확인

리스트나 튜플에서 사용했던 것 처럼 딕셔너리 내 key값을 확인 할 수 있다.

 

5. 딕셔너리의 이터레이터 성질

keys와 values 메서드는 각각 키와 값이 담긴 이터레이터를 반환한다. 키-값 쌍은 일정한 기준으로 정렬되어 있지 않지만, keys 메서드와 values 메서드에서 반환하는 리스트는 같은 순서를 가진다.

 

6. 이터레이터의 성질을 이용하여 딕셔너리 생성하기

딕셔너리는 2개의 튜플로 구성되어 있으므로 dict 함수가 2개짜리 튜플의 리스트를 인자로 받아서 사전을 생성하는 것이 가능하다.

(key_list와 value_list를 튜플의 리스트로 만들어 주었고, mapping_A라는 빈 딕셔너리에 for문을 이용하여 key-value값을 생성하였고, mapping_B는 dict 함수가 2개의 튜플 리스트 인자를 받아 딕셔너리를 생성한 모습이다.)

 

7. 딕셔너리 활용

words의 리스트를 정의 한 후, word in words로 풀어낸다면 'apple'부터 'book'까지 word라는 변수로 정의되어 for문에 적용이 된다.

 

이 때 letter의 변수 즉 첫 번째 단어인 apple을 예로 들면, word[0]은 apple의 맨 앞 스펠링인 'a'가 될 것이며, 

 

by_letter_A[letter]는 by_letter_A['a']를 의미한다. 그럼 key값이 'a'일 때 [word] = [apple]이고, 이것은  value값이 됨

 

word의 맨 앞 스펠링이 key값으로 설정되고 그 전체 단어가 리스트 된 value값으로 구성되어 딕셔너리를 완성한다.

 

8. 딕셔너리 내 key값의 조건

key값이 되려면 바뀌지 않는 객체 즉, 튜플과 같이 바뀌지 않는 객체로 구성되어야만 한다. 이를 기술적으로 해시 가능해야 한다라고도 표현한다.

 

만약 key값으로 list와 tuple이 온다면, 객체 변경 가능한 list는 key값으로 불가능하고, tuple은 가능하다.

'Data organization > 개념정리' 카테고리의 다른 글

Comprehension(리스트, 딕셔너리)  (0) 2021.02.12
파이썬 연산(집합)  (0) 2021.02.03
자료형 함수  (0) 2021.01.28
리스트 활용 방법  (0) 2021.01.27
튜플 생성 방법 및 분리 방법  (0) 2021.01.27

+ Recent posts