이번 시간에는 파이썬의 collections 안에 있는 defaultdict에 대해 간단하게 알아보겠습니다. 언제 쓰면 좋은지 알아볼게요. 딕셔너리나 set을 사용하다 보면 아래와 같은 에러를 자주 보신 적이 있을 겁니다. 키가 없을 때 KeyError 에러를 뱉습니다. 혹은 하나의 key가 여러 개의 value를 가지고 있다면 어떤가요? 이렇게 하시는 경우가 많을 겁니다. 먼저, 키 1이 있는지 검사합니다. 있으면 가져오고, 없으면 빈 리스트를 가져옵니다. 다음에, 가져온 리스트에 2를 추가합니다. 다음에 dic[1] = lt로 키 1의 값에 2를 append한 리스트를 대입합니다. 결과는 위와 같습니다. 얼핏 보면, dic[1].append(2)만 있으면 될 거 같습니다. key 값이 있을 때에는 별..
파이썬 검색 결과
os.path의 splitext 함수는 확장자를 검사하기 위해 쓰이는 함수입니다. 문서에 있는 표현을 잠시 빌리면, root하고 ext를 나눠버리기 위해서 쓰는데요. 예를 들어, a.jpg는 a와 .jpg로 분리할 수 있습니다. 뒤에 .jpg가 확장자이기 때문입니다. 예제를 보면서 알아 봅시다. 먼저, 'a/b/c'는 root로만 이루어져 있고, 확장자 정보는 없습니다. 따라서, root는 'a/b/c', ext는 ''로 나오게 됩니다. 정말 그렇게 나오는지는 결과를 확인해 보면 됩니다. 네. 정말 그렇게 나오네요. 이제, 'a/b/c.png'는 어떻게 나올까요? 확장자가 .png임은 한눈에 알 수 있습니다. 결과는 위와 같이 나옵니다. 확장자 부분을 뺀 나머지가 root가 됨을 알 수 있습니다. 이제 ..
python에서 os의 environ이 무엇을 담고 있는지 간단하게 알아보겠습니다. 먼저, cho로 로그인 한 쉘입니다. 변수 CHO의 값을 출력해 보니 3이 나왔습니다. 다음에 root 쉘로 로그인 했습니다. 마찬가지로 쉘 변수 CHO를 출력해 보니, 10이 나왔습니다. 여기서 중요한 것은 cho로 로그인이 된 쉘의 CHO와 root 쉘의 CHO의 값이 달랐다는 점입니다. 이제, os의 environ으로부터 변수 'GH'의 값을 얻어봅시다. 1.py에, 그러한 일을 수행하는 코드를 작성하였습니다. 단 두 줄이면 얻어낼 수 있습니다. 이 코드는 'GH'의 값을 얻어냅니다. cho로 로그인 한 쉘에서는 3을 출력합니다. 그런데, root로 로그인 한 쉘에서는 10을 출력합니다. 이를 토대로 추측할 수 있는..
오랫만입니다. 이번 시간에는 파이썬의 sys.path에 대해 간단하게 알아보겠습니다. 먼저, testmodule 프로젝트를 하나 만들었습니다. 프로젝트의 구조는 main.py가 있고, t1 패키지 아래에 cron.py가 있는 구조입니다. cron.py에 있는 test_cron은 test_cron_1을 출력합니다. t1.cron으로부터 test_cron을 import 하면 의도대로 잘 동작할까요? 같은 프로젝트 폴더 내에 있으니, 잘 찾아갈 겁니다. test_cron_1이 잘 출력됩니다. 이제, 제가 testmodule2라는 프로젝트를 새로 하나 만들었습니다. t2라는 패키지가 있고요. 그 아래에 cron.py가 있습니다. 이 파일 안에는 test_cron 함수가 있습니다. testmodule1에 있는 m..
파이썬에서 dict는 꽤 많이 사용합니다. 키에 대응되는 값을 찾고 싶습니다. 어떻게 하면 좋을까요? 이번 시간에는 dictionary를 index로 접근하는 방법과 get 메서드로 접근하는 것의 차이점을 알아보겠습니다. 그리고 키가 없을 때 get 함수를 이용해서 어떻게 디폴트 값을 얻는지도 알아봅니다. 먼저 딕셔너리 d에는 키 값이 1이고 값이 1인 쌍과 키 값이 2이고 값이 2인 쌍 2개가 저장되어 있습니다. d[1]은 키 값이 1인 것의 value 값을 뽑아내는 것입니다. 1이 나오네요. 이건 당연합니다. 그러면, 이 경우는 어떨까요? 3이라는 키는 없으니까 딕셔너리에서 3을 꺼내와 봅시다. 해당 코드는 위와 같이 작성할 수 있습니다. 그랬더니 KeyError 에러가 납니다. 이는 3이라는 키가 ..
최근댓글