python에서 zip 함수는 유용하게 쓰일 수 있는 메서드 중 하나입니다. 어떻게 쓰이는지 간단하게 예제를 보겠습니다. zip 메서드에 대한 설명을 보면, Iterable한 것을 여러개 받게끔 되어 있습니다. 뭐가 뭔지 모르겠으니, 설명에서 예제로 나온 것 부터 해석해 보도록 하겠습니다. list(zip('abcdefg', range(3), range(4)))를 보시면, iterable한 것이 3개나 들어왔음을 알 수 있어요. str, 범위, 범위 이렇게요. 그런데, 결과가 [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]가 최종적으로 나왔습니다. 여기서 유추할 수 있는 것 하나는, zip 메서드가 병렬적으로 iterator를 돌림을 알 수 있습니다. 'abcdefg', range..
python 검색 결과
파이썬을 다루시다 보면 한 번 쯤 GIL에 대해서 들어본 적이 있을 겁니다. 그리고, 이에 대한 문서를 보면, jython이나 iron에는 GIL이 없다는 것을 알 수 있는데요. 이렇게 구현체마다 다른 특성을 가지는 경우가 있어요. 그래서, 버전과 함께 구현체를 확인하는 방법을 알아보려고 해요. python을 하는데, Jython을 쓰는지 pypy를 쓰는지, cpython을 쓰는지 모르면 말이 안 될 거고요. 이 질문의 답을 보면, platform을 써 보라고 합니다. platform을 import 해 보겠습니다. 여기에는, platform identifying data를 얻어오기 위한 모듈임을 알 수 있어요. function API를 통해서, information을 만들어 낸다는 이야기도 같이 덧붙이고..
python에는 random이 있습니다. 여기에 있는 메서드 중에서 sample과 choices의 차이를 알아봅시다. 먼저 예제 1번을 보겠습니다. 왠 리스트가 있는데요. li는 [1, 2, 3, 4, 5]입니다. 4번째 줄에서 rd.choices와 rd.sample을 호출하는데요. 결과만 보겠습니다. 전자는 [1, 1]이 나왔습니다. 그런데, 후자는 그렇지 않았네요. [1, 1]이 나온 경우도 있었습니다. 쉽게 말해서, choices는 공 n개가 있습니다. 먼저 n개 중에 하나를 뽑았습니다. 결과를 보고 다시 넣습니다. 그러면 공 n개가 들어 있을 겁니다. n개 중에 하나를 또 뽑습니다. 즉, 표본 크기가 n이라면, 그 중 하나를 뽑고, 다시 넣는 작업을 반복합니다. sample은 그렇지 않습니다. n..
파이썬을 c처럼 짜다가, 이것 저것 기능을 알아가다 보니, 이렇게 짜면 코드가 단순해지겠네. 하는 것이 하나씩 있습니다. 그 중 하나는 filter입니다. 자바에서는 필터랑 람다랑 짝궁처럼 붙어다니기도 합니다. 파이썬에서도 마찬가지입니다. 공식 문서에 따르면, filter는 function과, iterable을 받습니다. 대표적으로 iterable 한 것은 list가 있습니다. 예제를 몇 개 보도록 하겠습니다. 먼저, func은 항상 True를 리턴합니다. 그리고 2번째 인자로 li를 넣었는데요. 여기에는 1, 2, 3, 4, 5가 저장되어 있습니다. 무엇이 나오는지 결과부터 보도록 하겠습니다. 그대로 1, 2, 3, 4, 5가 나오게 됩니다. 이는 뭐가 되었던지 간에 항상 True가 리턴이 되었기 때문..
이번 시간에는 for in문에 많이 써먹는 range에 대해 알아보겠습니다. range는 공식 문서에 따르면 sequence 입니다. 그리고 이터레이터를 제공하는, 불변 객체입니다. 그래서 어떻게 써야 하는지 알아봐야 겠습니다. 예제 5개를 보도록 하겠습니다. 먼저 1번째 예제입니다. range(5)만 있습니다. 이것은 끝만 있습니다. 문서에 따르면 stop만 있습니다. 그리고 start가 없는데요. 이 경우에는 시작이 0이다라는 것이 생략되어 있습니다. default가 0인 셈입니다. 그리고 스텝 수 default 값은 1입니다. 이에 대한 설명은 밑에서 이야기 하겠습니다. 실행 결과는 0, 1, 2, 3, 4가 나옵니다. 끝 원소인 5가 포함되지 않았다는 것이 중요합니다. 그리고 1씩 증가했다는 사실..
최근댓글