Spring, 2019 School of CSE Pusan National University Python의 자료형(2) Spring, 2019 School of CSE Pusan National University
문자열 메소드 함수와 메소드의 차이 함수는 그냥 이름으로 호출함 메소드(method)는 특정 대상에 소속된 함수이므로 특정 대상과 함께 호출함 a의 메소드 f는 a.f()와 같은 형태로 호출함 문자열 대소문자 변환: s.upper(), s.lower() 특정 부분 문자열 X를 Y로 치환: s.replace(X, Y) 좌우 공백을 제거함: s.strip(), s.lstrip(), s.rstrip() 리스트로 변환: s.split() 부분 문자열 개수를 셈: s.count(ss) 부문 문자열 검색: s.find(ss), s.rfind(ss), s.index(ss) 참고: http://docs.python.org/2/library/string.html#string-functions
문자열 메소드를 적용해도 원 문자열은 변경되지 않고 새로운 문자열이 생성된다는 사실에 주의하자. 문자열 메소드 사용 예 문자열 메소드 사용예 문자열 메소드를 테스트해 보자. s = 'Hello Python?' print s.upper() print s.lower() print s.replace('Hello', 'Good') print s t = ' Romeo and Juliet ' print '|%s|'%t.lstrip() print '|%s|'%t.rstrip() print '|%s|'%t.strip() print '|%s|'%t 실행결과를 예측해 보고 실제 결과를 통해 확인해 보자. 문자열 메소드를 적용해도 원 문자열은 변경되지 않고 새로운 문자열이 생성된다는 사실에 주의하자.
리스트 메소드 리스트 메소드 예 리스트 메소드 참고자료 list.append(x): 리스트 맨 뒤에 항목 x를 추가함 list.extend(L): 리스트 뒤에 리스트 L의 모든 원소를 붙임 list.insert(i, x): 리스트의 위치 i에 항목 x를 삽입함 list.remove(x): 처음 나타나는 x를 제거함. 그런 x가 없으면 오류 list.pop(), list.pop(i): 리스트의 맨 뒤 항목을 제거함. i가 주어지면 위치 i의 항목을 제거함 list.index(x): 처음 나타나는 x의 위치. 그런 x가 없으면 오류 list.sort(): 리스트를 정렬함 list.reverse(): 리스트의 앞, 뒤를 바꿈. 리스트를 역전시킴 리스트 메소드 참고자료 http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
리스트 메소드 사용 예 리스트 메소드를 테스트해 보자. 실행결과를 예측해 보고 실제 결과를 통해 확인해 보자. a = [66.25, 333, 333, 1, 1234.5] print a.count(333), a.count(66.25), a.count('x') a.insert(2, -1) a.append(333) print a a.index(333) a.remove(333) a.reverse() a.sort() 실행결과를 예측해 보고 실제 결과를 통해 확인해 보자.
문자열과 리스트 string 패키지의 split() 메소드 import string song = "I am just a poor boy" words = string.split(song) print words print string.split(song, 'a') 리스트의 join() 메소드 split()과 반대 역할을 수행하며 단어 사이를 연결할 문자열 con을 두 번째 인수로 받음 print string.join(words) print string.join(words, '-')
튜플 튜플이란? 튜플 생성 방법 print (1,2,3) print (1, 2, ('Hello'), 'Python') 튜플(tuple)은 순서쌍 타입임 문자열과 마찬가지로 내용을 바꿀 수 없음 튜플 생성 방법 괄호를 이용하여 생성함 print (1,2,3) print (1, 2, ('Hello'), 'Python') 원소 하나짜리 튜플에는 쉼표를 반드시 사용해야 함 print (1,) 빈 튜플은 ()로 나타냄 print ()
튜플 연산자 원소 참조 tuple = (1, 2, ('Hello',), 'Python') print tuple[1] 리스트와 마찬가지로 첨자 연산을 사용할 수 있음 tuple = (1, 2, ('Hello',), 'Python') print tuple[1] print tuple[2][0] 슬라이스도 사용 가능함 print tuple[1:3] 튜플 더하기와 반복 +를 이용한 접합 print tuple + tuple *를 이용한 반복 print tuple * 3
사전 사전이란? 사전 생성 방법 pnu = {'name':'PNU', 'location':'Busan'} print pnu ‘key:value’ 형태의 자료가 여러 개 저장된 자료형을 사전(dictionary)이라고 함 표제어인 key는 변경될 수 없고 값인 value는 변경될 수 있음 사전 생성 방법 사전 리터럴은 중괄호와 쉼표를 이용하여 생성함 pnu = {'name':'PNU', 'location':'Busan'} print pnu 빈 사전 {}부터 시작하여 하나씩 생성할 수 있음 pnu = {} pnu['name'] = 'PNU' pnu['location'] = 'Busan'
사전 연산자 첨자 연산 print pnu['location'] pnu['nation'] = 'Korea' print pnu key를 첨자로 사용하여 값을 참조할 수 있음 print pnu['location'] 물론 key를 첨자로 하여 값을 변경할 수도 있음 pnu['nation'] = 'Korea' print pnu 항목 삭제 연산 key:value 항목을 하나 삭제하려면 del 명령어를 이용함 del을 이용할 경우에도 첨자 연산을 이용함 del pnu['nation'] 사전의 항목 저장 순서가 무엇인지 예측해 보자.
사전 메소드 keys()와 values() keys(): 사전의 표제어(key)만 모아서 리스트로 만들어 줌 values(): 사전의 값(value)만 모아서 리스트로 만들어 줌 pnu = {'name':'PNU', 'location':'Busan', 'nation':'Korea'} print pnu.keys() print pnu.values() items() 표제어와 값을 순서쌍으로 만들어서 리스트로 만들어 줌 print pnu.items() 기타 메소드 has_key(): 원하는 표제어가 있는지 검사함 clear(): 사전의 모든 내용을 삭제함
요 약 자료와 자료형 Python의 자료형 문자열과 리스트 튜플과 사전 자료형은 자료의 집합으로 볼 수 있음 자료형은 자료의 크기와 형태를 결정함 Python의 자료형 스칼라 타입과 구조 타입으로 나눌 수 있음 대표적인 구조 타입으로는 문자열, 리스트, 튜플, 사전 등이 있음 문자열과 리스트 문자열과 리스트는 서로 변환 가능함 for 문: 문자열과 리스트를 다루기에 적합한 반복문 튜플과 사전 튜플은 순서쌍 타입으로 원소를 바꿀 수 없음 사전은 key:value 쌍으로 이루어진 구조 타입