목록Language (35)
습관처럼
파이썬은 정규 표현식을 지원하기 위해 re(regular expression의 약어) 모듈을 제공한다. re 모듈은 파이썬을 설치할 때 자동으로 설치되는 기본 라이브러리로 사용 방법은 다음과 같다. >>> import re >>> p = re.compile('ab*') re.compile을 사용하여 정규 표현식(위 예에서는 ab*)을 컴파일한다. re.compile의 결과로 돌려주는 객체 p(컴파일된 패턴 객체)를 사용하여 그 이후의 작업을 수행한다. Method 목적 match() 문자열의 처음부터 정규식과 매치되는지 조사한다. search() 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. findall() 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다. finditer(..
정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것이 있다. 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. . ^ $ * + ? { } [ ] \ | ( ) 정규 표현식에 위 메타 문자를 사용하면 특별한 의미를 갖게 된다. 문자 클래스 [] 문자 클래스로 만들어진 정규식은 "[ ] 사이의 문자들과 매치"라는 의미를 갖는다. 정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다. 이해를 돕기 위해 문자열 "a", "before", "dude"가 정규식 [abc]와 어떻게 매치되는지 살펴보자. "a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치 "before"는 정규식과 일치하는 문자인..
문자열 관련 함수들 count: 개수 >>> a = "hobby" >>> a.count('b') 2 find: 문자를 통해 인덱스 위치 >>> a = "Python is the best choice" >>> a.find('b') 14 >>> a.find('k') -1 index: 인덱스 위치 >>> a = "Life is too short" >>> a.index('t') 8 >>> a.index('k') Traceback (most recent call last): File "", line 1, in ValueError: substring not found join: 문자열 사이에 해당문자를 삽입 >>> ",".join('abcd') #abcd 문자열의 각각의 문자 사이에 ','를 삽입한다. 'a,b,c..
문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다 . 백슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기 >>> food = 'Python\'s favorite food is perl' >>> say = "\"Python is very easy.\" he says." \n 문자열 안에서 줄을 바꿀 때 사용 \t 문자열 사이에 탭 간격을 줄 때 사용 \\ 문자 \를 그대로 표현할 때 사용 \' 작은따옴표(')를 그대로 표현할 때 사용 \" 큰따옴표(")를 그대로 표현할 때 사용 \r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) \f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) \a 벨 소리(출력할 때 PC 스피커에서 '삑' 소..
람다 형식은 인공지능 분야나 AutoCAD라는 설계 프로그램에서 쓰이는 Lisp 언어에서 물려받았다고 하는데요, 함수를 딱 한 줄만으로 만들게 해주는 훌륭한 녀석입니다. 사용할 때는 아래와 같이 써주면 됩니다. 다음은 두 수를 더하는 함수입니다. def hap(x, y): return x + y >>> hap(10, 20) 30 이것을 람다 형식으로는 어떻게 표현할까요? lambda 인자 : 표현식 >>> (lambda x,y: x + y)(10, 20) 30 정말 유용한 함수입니다. lambda of map map(함수, 리스트) >>> list(map(lambda x: x ** 2, range(5))) # python 2 및 python 3 [0, 1, 4, 9, 16] lambda of filter..
abs: abs(x)는 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수이다. >>> abs(3) 3 >>> abs(-3) 3 >>> abs(-1.2) 1.2 chr: chr(i)는 아스키(ASCII) 코드 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수이다. >>> chr(97) 'a' >>> chr(48) '0' divmod: divmod(a, b)는 2개의 숫자를 입력으로 받는다. 그리고 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수이다. >>> divmod(7, 3) (2, 1) >>> 7 // 3 2 >>> 7 % 3 1 enumerate: 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다. >>> ..
set은 집합 자료형이다. 정해진 순서가 없고 중복을 허용하지 않기 때문이다. 그래서 set은 중복을 제거할때도 유용하게 이용된다. set: set의 추가, 다중추가, 제거: def solution(): a_set={1,2,3}#set의 기본적인 표현 {}를 사용한다. b_set=set([1,2,3,4])#set은 리스트를 바꿔어서 사용가능하다. c_set=set([1,1,1,2,2,2,3,3,3,4])#{1,2,3,4} c_set.add(5)#{1,2,3,4,5} c_set.update([6,7,8])#{1,2,3,4,5,6,7,8} c_set.remove(1)#{2,3,4,5,6,7,8} #[2, 3, 4, 5, 6, 7, 8] set은 순서가 없기 때문에 인덱스에 접근하려면 리스트로 변경해야한다. ..
파이썬 list 메소드에서 append()와 extend()의 차이점: def solution(): x = [1, 2, 3] x.append([4, 5]) #[1, 2, 3, [4, 5]] y = [1, 2, 3] y.extend([4, 5]) #[1, 2, 3, 4, 5] if __name__ == '__main__': solution() append(): object를 맨 뒤에 추가합니다. extend(): iterable 객체(리스트, 튜플, 딕셔너리 등)의 엘레멘트를 list에 appending시킵니다.