파이썬에는 dict와 OrderedDict가 있습니다. 이 둘에 대해 간단하게 알아봅시다. 아래 코드를 wandbox에서 python 3.5.0에서 실행시켜 보았습니다. 2번째 줄이 조금 길어보이는데요. 그리 어렵지 않습니다. ord('A')와 ord('Z')는 'A'와 'Z'를 코드로 변환시켜 줍니다. 그러면 i는 'A'의 코드값부터 'Z'의 코드값까지 돌 겁니다. 그런데, 앞에 chr(i)가 있으니, 결론적으로 li는 'A'부터 'Z'까지 들어가 버리게 됩니다. 3번째 줄에서는 li 안에 있는 것들을 돌면서, 'A', 'B', ... , 'Z' 순서대로 넣고 있습니다. 다음에, 5번째 줄에서는 dic를 순회하면서 요소들을 모두 출력합니다. 결과는 위와 같습니다. 중요한 것은 넣은 순서가 자료구조 내에..
코딩/파이선 검색 결과
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, c++에서 제가 꽤 많이 쓰던 것 중 하나는 삼항 연산자였습니다. 파이썬에는 없을까요? 예를 들어, a의 절댓값을 구하는 mabs 메서드를 생각해 보겠습니다. 이것은 아래와 같이 쓸 수 있습니다. a가 0보다 작으면, -a를 리턴합니다. 그렇지 않으면, if문에 걸리지 않으니 4번째 줄을 수행합니다. a를 돌려주는데요. 7번째 줄에 -1을 인자로 넣어서 mabs를 호출합니다. 실행 결과는 위와 같습니다. -1의 절댓값은 1이니, 의도한 결과대로 잘 나왔음을 볼 수 있어요. 이 링크를 보면, 중간에 이런 구문이 나옵니다. 이것은 C이면, x가 평가되고, 그렇지 않으면 y로 평가됩니다. 즉, C가 참이면, 노란색이 수행되고, 아니면 y가 수행됩니다. 이를 응용하면, mabs를 1줄로 바꿀 수 있습니다...
저는 변수를 출력할 때, 문자열을 이어 붙여서 출력하곤 했습니다. 그런데, 사실 간단한 방법이 있었습니다. 파이썬 3.6 부터는 Literal String Interpolation이 도입되었습니다. PEP 498에서는 이를 f-string으로 언급하고 있는 듯 합니다. 간단하게 예제 몇 개를 보도록 하겠습니다. 먼저 cost를 출력하는 방법입니다. 앞에 f 지시자가 들어갔다는 것을 보시면 됩니다. 그리고, 뒤에 {cost}라고 적혀져 있는데요. 실행 결과를 보겠습니다. cost is 21350이라고 나옵니다. cost가 {cost}이다. 꽤나 유용하게 쓰일 법 합니다. 왜냐하면, 저는 이러한 작업을 문자열을 연결해서 많이 했기 때문입니다. 그런데, 이 방법은 읽기 쉽습니다. 많이 쓰일 법 합니다. 당연하..
파이썬에서 sorted는 꽤 많이 쓰는 함수 중 하나입니다. 어떻게 쓰는지 간단하게 알아봅시다. 이 문서를 보고 오시면 더 좋습니다. 먼저, 정수를 정렬해 봅시다. 정렬할 때에는 보통 리스트를 많이 씁니다. 리스트는 iterable 하므로, 정렬 가능합니다. sorted(arr)을 한 결과를 출력해 보겠습니다. 그러면 2, 3, 3이 나옵니다. 역순으로 정렬할 수 없을까요? 할 수 있습니다. reverse 옵션을 True로 주면 됩니다. 실행 결과는 위와 같습니다. 키를 설정하는 것을 많이 쓰는데요. 이것을 람다로 퉁칠 수 있습니다. 예를 들어 보겠습니다. 먼저, pair의 1번째 요소를 기준으로 정렬한다면, lambda tu : tu[1]로 주면 됩니다. 단지, 이것은 키 (1, 2)에서 1번째 원소인..
최근댓글