python 29

파이썬 itertools

파이썬 라이브러리 중 하나인 itertools에 대해 알아보겠습니다 itertools 라이브러리를 이용하면 조합과 순열을 쉽게 구할 수 있습니다 itertools itertools : 효율적인 루핑을 위한 이터레이터를 만드는 함수 combinations() combinations_with_replacement() product() permutations() 에 대해 알아봅시다 ※combinations(iterable, r) : iterable에서 원소 개수가 r개의 조합 뽑기 *결과 파이썬 공식문서에 다르면 입력 iterable 순서에 따라 사전식 순서로 방출됩니다. 따라서 , 입력 iterable이 정렬 되어있다면, 조합 튜플이 정렬된 순서로 생성됩니다 ※combinations_with_replacem..

python 2021.10.12

파이썬 - 클래스

객체 지향언어에서는 클래스라는 개념이 제일 중요하다 만약에 계산기가 있다고 가정화한다 계산기로 더하기, 빼기, 곱하기, 나누기 등 많은 계산들을 할수가 있는데, 예를들어 계산기에 숫자 4를 입력하고 + 기호를 입력한 후 4를 입력하면 결과값이 8을 보여준다. 다시 한번 + 기호를 입력한 후 3을 입력하면 11을 보여준다. 즉 계산기는 이전에 계산한 결과값을 메모리에 저장을 해둔다 그런데 만일 한 프로그램에서 2대의 계산기가 필요한 상황이 발생하면 어떻게 할까? 이럴때 함수를 2개를 만들어서 계산을 하면 가능하긴 하다. 하지만 똑같은 일로하는 함수를 2가지를 만들었고, 각 함수에서 계산한 결과값을 유지하면서 저장하는 전역 변수가 2개가 피룡하게 되었다. 이럴때 간단하게 클래스를 추가를 하면 간단하게 해결 ..

python 2021.10.12

재귀함수 -파이썬(하노이탑)

오늘은 알고리즘 공부를 하면서 재귀함수의 대표적인 문제인 하노이탑 문제를 정리를 해보았다 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다. 한 번에 한개의 원판만 옮길 수 있다. 큰 원판이 작은 원판 위에 있어서는 안 된다. 차례대로 설명해주겠다 먼저 3개의 기둥이 있고 첫번째 기둥을 시작으로두고 가운데에 있는 기둥을 보조, 끝에 있는 끝이라고 둡니다 첫번째 기둥에 원판이 1개가 있을때는 시작 기둥에서 끝에..

python 2021.09.10

파이썬 lamda

lamda는 함수를 딱 할 줄만으로 만들게 해주는 휼륭한 녀석이다. 람다함수의 장점은 코드의 간결함 메모리의 절약이라고 생각할 수 있습니다. 함수객체를 변수에 담은 시점에서, 함수객체는 메모리에 올라가서 변수를 통해 자신이 호출되기를 기다리게 됩니다. 만약 다음과 같이 단 한번만 사용될 함수라면 불필요한 메모리가 낭비됩니다. lamda 인자 : 표현식 다음은 두 수를 더하는 함수입니다 def hap(x, y): return x+ y hap(10,20) >>> 30 이것은 람다 형식으로 표현 (lamda x,y : x + y)(10,20) >>> 30 람다함수도 객체이기 때문에 정의와 동시에 변수에 담을 수는 있습니다 ※참고 https://wikidocs.net/22804

python 2021.09.04

파이썬 기초(sort, sorted)

reverse : 리스트를 거꾸로 뒤집는다 . desc 정렬이 아님 더보기 a = [1, 10, 5, 7, 6] a.revese() print(a) >>> [6,7,5,10,1] sort : 정렬, 기본값은 오름차순 정렬, reverse 옵션 True는 내림차순 정렬 더보기 a = [1, 10, 5, 7, 6] a.sort(() print(a) >>>> [1,5,6,7,10] a = [1, 10, 5, 7, 6] a.sort(reverse = True) print(a) >>>>[10,7,6,5,1] sort의 key 옵션, key 옵션에 지정된 함수의 결과에따라 정렬, 아래는 원소의 길이 key = len은 문자 길이 만큼 오른차순으로 정렬을 한다 더보기 m = '나는 파이썬을 잘하고 싶다' a = m...

python 2021.09.04

넘파이 슬라이싱

지금부터 다음과 같은 성적이 저장된 1차원 배열에서 요소들을 꺼내는 방법을 살펴보자 1차원 배열을 넘파이 배열에 담았습니다. 넘파이 배열에서 특정한 요소를 추출하려면 인덱스를 사용한다. 파이썬 리스트와 마찬가지로 인덱스는 0부터 시작한다 . 따라서 인덱스를 2를 지정하면 93이 출력된다. 마지막 요소에 접근하려면 리스트와 마찬가지로 인덱스를 -1을 주면 된다. 99라는 값이 출력된다. 넘파이 배열에서는 다음과 같이 슬라이싱도 가능하다. 마지막 항목 인덱스가 4일때는 score[3] 항목까지 슬라이싱 된다는 것에 주의하도록 하자 마지막 인덱스를 생략하면 디폴트 값은 -1입니다. 배열[a:b:c]를 이용하여 배열의 일부를 잘라 표시할 수 있습니다. a는 시작값, b는 도착값, c는 간격을 의미합니다. 그러면..

python 2021.06.08