파이썬을 c처럼 짜다가, 이것 저것 기능을 알아가다 보니, 이렇게 짜면 코드가 단순해지겠네. 하는 것이 하나씩 있습니다. 그 중 하나는 filter입니다. 자바에서는 필터랑 람다랑 짝궁처럼 붙어다니기도 합니다. 파이썬에서도 마찬가지입니다. 공식 문서에 따르면, filter는 function과, iterable을 받습니다. 대표적으로 iterable 한 것은 list가 있습니다. 예제를 몇 개 보도록 하겠습니다. 먼저, func은 항상 True를 리턴합니다. 그리고 2번째 인자로 li를 넣었는데요. 여기에는 1, 2, 3, 4, 5가 저장되어 있습니다. 무엇이 나오는지 결과부터 보도록 하겠습니다. 그대로 1, 2, 3, 4, 5가 나오게 됩니다. 이는 뭐가 되었던지 간에 항상 True가 리턴이 되었기 때문..
코딩/파이선 검색 결과
여태까지 배운 내용을 바탕으로, 파이썬으로 로또 번호 6개를 중복 없이 뽑는 방법을 알아보겠습니다. c언어 스럽게 짠다면 아래와 같이 작성할 수 있습니다. 먼저, flag를 선언합니다. 이것은 단지, 어떤 수가 뽑혔는지를 나타내는 배열입니다. 5번째 줄부터 6번을 돌려보는데요. r은 구간 [1, 45+1)에 속하는 수 중 하나입니다. 수를 뽑았을 때, flag[r]의 값이 1이라면 루프를 계속 돌고, 그렇지 않으면 r을 선택합니다. r을 선택할 때, flag[r]에 1을 넣어줍니다. 그리고, 선택한 수를 추가해 주면 됩니다. 이렇게 6번을 뽑으면 됩니다. 중복된 수가 나오지 않았음을 볼 수 있습니다. 그런데, 파이썬에는 딕셔너리가 있습니다. 이것은, 중복된 키 값을 저장하지 않습니다. 그렇다면, 아래와 ..
이번 시간에는 for in문에 많이 써먹는 range에 대해 알아보겠습니다. range는 공식 문서에 따르면 sequence 입니다. 그리고 이터레이터를 제공하는, 불변 객체입니다. 그래서 어떻게 써야 하는지 알아봐야 겠습니다. 예제 5개를 보도록 하겠습니다. 먼저 1번째 예제입니다. range(5)만 있습니다. 이것은 끝만 있습니다. 문서에 따르면 stop만 있습니다. 그리고 start가 없는데요. 이 경우에는 시작이 0이다라는 것이 생략되어 있습니다. default가 0인 셈입니다. 그리고 스텝 수 default 값은 1입니다. 이에 대한 설명은 밑에서 이야기 하겠습니다. 실행 결과는 0, 1, 2, 3, 4가 나옵니다. 끝 원소인 5가 포함되지 않았다는 것이 중요합니다. 그리고 1씩 증가했다는 사실..
파이썬에는 tuple이 있습니다. 순서 타입 중 하나입니다. 이것에 대해서 예제 프로그램을 보면서 간략하게 알아봅시다. 먼저, 튜플은 (2, 3, 5)와 같이 쓸 수 있습니다. 처음에 p가 어떤 클래스의 객체인지 찍어 보았습니다. 다음에, 3번째 loop에서 p에 있는 전체 원소들을 순회합니다. 디버그 창으로 변수를 보니, 그냥, 2, 3, 5가 저장이 되어 있음을 볼 수 있습니다. 실행 결과는 위와 같습니다. 일단, 순회가 가능합니다. 리스트도 분명 이런 연산이 가능했습니다. 예제 2를 봅시다. 이것도 하는 일은 단순합니다. 3번째 줄부터 4번째 줄 까지는 p에 있는 요소들을 모두 순회합니다. 그리고, 5번째 줄부터 6번째 줄까지는, li에 있는 것을 모두 순회합니다. 이 둘이 순회 가능하니, 저렇게 ..
파이선에서 list를 뒤집는 연산은 꽤 많이 쓰입니다. 어떻게 뒤집는지 알아봅시다. 먼저 [::-1]입니다. 이것은, 리스트를 역순으로 뒤집습니다. 실행 결과는 아래와 같습니다. yrotselpam 메이플 스토리가 뒤집어진 모양입니다. 이는 step이 -1이였기 때문입니다. -1은, 역순으로 1칸씩 이동한다는 의미입니다. -2를 하면 어떨까요? 역순으로 2칸씩 이동할까요? 직접 입력해 보겠습니다. li[::-2]를 입력해 보았습니다. 그러면 yosla가 출력됨을 알 수 있는데요. y로부터 역순으로 2칸 가면 o가 나오고, o에서 2칸 역순으로 가면 s가 나옵니다. s에서 2칸 왼쪽으로 가면 l이 나오고, 또 거기서 왼쪽으로 2칸 가면 a가 나옵니다. 즉, -2는 왼쪽으로 2칸씩 이동한다는 의미입니다. 저..
최근댓글