본문 바로가기

파이썬

(6)
[Python3] 효율적인 반복자 itertools 사용하기 import itertools 효율적인 루핑을 위한 이터레이터를 만드는 함수 파이썬의 공식 문서는 itertools 모듈을 위와 같이 소개한다. 한 마디로 자신만의 반복자를 만드는 모듈이다. https://docs.python.org/ko/3.8/library/itertools.html 아래는 위의 문서를 읽고 직접 코드를 실행하며 정리한 내용이다. ​ ​ 무한 이터레이터 itertools.count(start, [step]) >>> for i in itertools.count(10,2): ... print(i) ... if(i==20):break ... 10 12 14 16 18 20 시작 값(start)와 step마다 증가할 값(step)을 인자로 하여 무한하게 숫자를 생성한다. break를 걸지 않..
[Python3] 리스트에서 최대 최소 찾기 min/max 리스트에서 최소 값과 최대 값을 찾을 때 for문을 돌며 minNum, maxNum 값을 갱신시키는 방법 말고 효과적으로 최소값과 최대값을 알 수 있는 함수가 있다. 이는 min과 max 이다. 단순히 min(a,b) 와 같이 변수끼리 비교하는 것도 가능하지만 list 에 있는 값을 비교하는 것도 가능하다! 아주 놀라운 함수이다. c언어에서는 여러 변수에서 min()이나 max 함수를 이용할 때 min(a,min(b, c)) 같이 min안의 min을 (재귀함수야 뭐야)이용해야 했지만, python은 min안에 최소값을 찾고 싶은 모든 변수를 넣을 수 있기 때문에 리스트의 최소 값을 알 수 있는 것이다. >>> min(1,3,-1,43,63,11,-234) -234 >>> max(-13151,16341,-..
[Python3] .isdigit() .isdecimal() .isnumeric() 숫자 판별 이들은 모두 문자열이 숫자인지 아닌지를 판별하여 True, False를 return 하는 함수이다. ​ .isdigit() 이는 문자열이 숫자로만 이루어져 있을 경우 True, False를 return 한다. ²와 같은 지수를 뜻하는 문자도 True로 반환한다. 그러나 음수를 뜻하는 - 문자가 들어갈 경우 False를 반환한다. >>> a = '1234' >>> a.isdigit() True >>> a = '1234²' >>> a.isdigit() True >>> a = 'abcdsfd' >>> a.isdigit() False >>> a = '-12314' >>> a.isdigit() False >>> a = ' 1 2' >>> a.isdigit() False ​ .isnumeric() 이는 문자열이 숫..
[Python3] .sort 와 sorted() sort와 sorted는 모두 리스트를 정렬해주는 함수이지만 반환과 리스트 자체의 정렬 여부에 차이점이 있다. .sort() >>> list = [2,1,6,4,71,23] >>> list.sort() >>> list [1, 2, 4, 6, 23, 71] .sort() 함수는 위와 같이 리스트 자체를 정렬해준 뒤 반환하지 않는다. ​ sorted() >>> list = [2,1,6,4,71,23] >>> sorted(list) [1, 2, 4, 6, 23, 71] >>> list [2, 1, 6, 4, 71, 23] sorted() 함수는 정렬된 리스트를 반환하고 실제 리스트는 정렬되지 않는다. ​ key = lambda() >>> list = [(1,3), (2,1), (34,21), (12,16)] ..
[Python3] 아스키 코드 변환하기 ord(), chr() 함수 ord(c) 하나의 문자를 아스키 코드 값으로 변환해주는 함수입니다. >>> ord('abs') -------------------------------------------------------------------- Traceback (most recent call last): File "", line 1, in TypeError: ord() expected a character, but string of length 3 found 두개 이상의 문자를 바꾸려고 하면 위와 같이 TypeError가 일어납니다. ord()는 하나의 문자, 즉 길이가 1인 문자열을 반환하나 'abs'는 길이가 3인 문자열이기 때문입니다. 정확하게 입력하면 다음과 같은 결과를 얻을 수 있습니다. >>> ord('a') ---..
[Python3] 람다(lambda) 함수 lambda() lambda 함수는 런타임에 생성해서 사용할 수 있는 일시적인 익명 함수입니다. 인공지능 프로그래밍에 많이 쓰이는 함수형 언어인 LISP 에서 물려받은 함수라고 합니다. 아래는 일반적인 함수 표현식입니다. -x 값을 리턴해주는 함수입니다. >>> def func(x): ... return -x >>> func(1) -1 이것은 람다 형식으로 아주아주 간단하게 표현이 가능합니다. >>> (lambda x:-x)(1) -1 정말 쉽죠? 또는 아래와 같이 사용할 수도 있습니다. >>> func = lambda x:-x >>> func(1) -1 따로 귀찮게 함수를 정의하지 않고도 바로 원하는 함수를 만들어 사용할 수 있기 때문에 map, filter, reduce, sorted 함수와 함께 쓰..