반응형


시퀀스 자료형의 지원 연산


시퀀스 자료형: 저장된 각 요소를 정수 index를 이용하여 참조가 가능한 자료형
       문자열, 리스트, 튜플


시퀀스 자료형이 가지는 공통적인 연산
1) 인덱싱: L[0] = 0번째 해당하는 값
2) 슬라이싱: L[start:end]→ start부터 end까지 (end는 포함하지 않음)
3) 확장 슬라이싱: L[start:end:step]→ 인덱싱되어지는 각 원소들 사이의 거리가 인덱스 기준으로
        step만큼 떨어짐
4) 연결하기 (+)
5) 반복하기 (*)
6) 멤버십 테스트: a in b→ b안에 a가 있는지 없는지 true, false로 출력
7) 길이 정보: len()
8) for~in 문: for c in ‘abcd’:→ a b c d 로 각 문자들이 접근됨


문자열 정의 및 기초 연산


한 줄 문자열: 작은 따옴표나 큰 따옴표 사용
큰 따옴표 안에 작은 따옴표를 문자처럼 사용 가능
작은 따옴표 안 작은 따옴표를 문자처럼 사용 시 \ 와 같이 사용
\: 다음 라인이 현재 라인의 뒤에 이어짐을 나타냄


여러 줄 문자열: 연속된 작은 따옴표 또는 큰 따옴표 세 개
작은 따옴표 세개로 시작되고 끝나는 문장 안 문자로 사용된 작은 따옴표는 그대로 사용 OK


문자열 정의 및 기초 연산


이스케이프 문자: 문자열 내부에 일반적인 규칙에서 벗어나 그대로 사용 가능

이스케이프 문자

의미

\\ \
\' '
\* *
\b 백스페이스
\n 개행
\t 탭
\0nn 8진법 수 nn
\xnn 16진법 수 nn


문자열 정의 및 기초 연산


문자열 연산
문자열 자료는 절대 변경이나 수정 불가능
따라서 문자열 변경을 위해서는 여러 Slicing을 연결하여 활용 (문자열이 변경되는 것이 아니라
새로운 문자열이 생성되어 재 할당 되는 것)


유니코드
다국어 문자의 올바른 표현을 위해 문자가 하나의 코드로 인식됨
’사용하고자 하는 문자’→ 사용하고자 하는 문자가 코드화 됨
일반 문자열 + 유니코드 = 유니코드
유니코드 타입의 한글 문자열에 대해서는 인덱싱 및 슬라이싱이 올바르게 수행됨



문자열 메소드

upper() : 내용 전부 대문자로 변경
lower() : 전체 결과를 전부 소문자로 변경
swapcase() : case를 바꾸는 것
capitalize() : 첫 문자만 대문자로 변환
title() : 각 단어의 첫 문자가 대문자로 변환
s.count(‘like’) : s 안에 like라는 문자열의 등장 횟수
s.find(‘like’) : s안 like 문자의 인덱스 반환
s.startswith(‘progr’, 7) : 7번째 인덱스부터 시작하여 progr 찾음
u.strip() : u 문자열 앞 뒤의 공백 제거
u.rstrip() : 오른쪽 공백 제거
u.lstrip() : 왼쪽 공백 제거
u.replace(a,b) : u 안의 a 문자를 b문자로 대치
u.split() : 각 단어가 공백을 기준으로 분리되어 리스트로 반환
(문자열).join(t) : 문자열이 리스트 t 내부의 각 원소 가운데 연결함
splitlines() : line기준으로 분리하여 리스트 반환
u.center(60) : 60자리를 확보하되, 기존 문자열을 가운데 정렬
u.ljust(60) : 60자리를 확보하되, 기존 문자열을 왼쪽 정렬
u.rjust(60) : 60자리를 확보하되, 기존 문자열을 오른쪽 정렬
u.center(60, ‘-’) : 확보한 60자리 중 공백에 ‘-’ 문자 채움
isdigit() : 문자열 내 character가 모두 숫자인가?
isalpha() : 문자열 내 character가 모두 영문자인가?
isalnum() : 문자열 내 character가 모두 영문자 또는 숫자인가?
islower() : 문자열 내 charcter가 모두 소문자인가?
isupper() : 대문자?
isspace() : 문자열 내 character이 모두 공백문자인가?
istitle() : 문자열이 title 형식(각 단어의 첫글자가 대문자) 인가?
s.zfill(5) : 5글자 자리 확보 후 문자열 쓰고, 남은 공백에 0 채움

문자열 변환
포매팅 문자: 문자열 내에 존재하는 %
포매팅을 활용한 문자열 변환: 포매팅 문자를 포함하는 문자열 % 튜플
숫자 변환시 사용되는 포매팅 문자 종류 및 설명
----------------------------------------------------
포멧팅 문자 || 의미
%s  || 문자열을 포함한 임의의 객체를 문자열로 변환하여 출력(str() 내장함수 사용)
%r  || 문자열을 포함한 임의의 객체를 문자열로 변환하여 출력(repr() 내장 함수 사용)
%c  || 1글자 문자(ex. ‘%c’ % ‘k)
%d  || 10진 정수 (%5d: 5자리를 확보한 후 정수 포멧팅)
%i  || %d와 동일
%u  || 부호 없는 정수, 음수는 양수처럼 해석함
%o  || 8진수 정수
%x  || 16진수 정수 (소문자 표현)
%X  || 16진수 정수 (대문자 표현)
%e  || 부동 소수점 실수를 지수 형태로 표현
%E  || %e와 동일 (대문자 E 표현)
%f  || 부동 소수점 실수
%g  || 부동 소수점을 편의에 따라 일반 실수 형식이나 지수 형식으로 변환
%G  || %g와 동일 (대문자 E 표현)
----------------------------------------------------


리스트 생성 및 기본 연산

리스트: 시퀀스 자료형이면서 변경 가능(mutable)
리스트에서 지원하는 일반적인 연산 : 인덱싱, 슬라이싱, 연결, 반복, 멤버쉽 테스트
리스트 값 변경 시 : 슬라이스 치환, 슬라이스 삭제([]), 슬라이스 삽입, 리스트 요소 삭제(del),리스트 자체 삭제 가능
중첩 리스트: 리스트 안에 리스트가 존재하는 리스트
len(l) 리스트 l 안 원소의 개수
range: 값을 리스트로 변경해줌 (10이면 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
for문의 헤더에서 각 튜플 값 추출 가능
리스트 안 각 자료가 리스트여도 for 문의 헤더에서 동일하게 값 추출 가능

리스트가 지원하는 메소드
1) s. appened(5) : s 리스트 맨 마지막에 정수 값 5 추가
2) s. insert(3, 4) : 3 인덱스 위치에 정수 값 4 추가
3) s. index(3) : 값 3의 인덱스를 반환
4) s. count(2) : 값 2의 개수 변환
5) s. reverse() : s 자료의 순서를 뒤집기 (반환값 없음)
6) s. sort() : s 자료 정렬 (반환값 없음)
7) s. remove(10) : 자료 값 10 삭제 (자료 값이 여러 개 존재하면 첫 번째 것만 삭제)
8) s. extend([60, 70]) : 새로운 리스트[60, 70]을 기존 리스트 s 뒤에 병합
9) s. append([60, 70]) : append로 새로운 리스트를 추가하면 하나의 자료 요소로서 추가

리스트를 스택으로 사용하기 : 제일 나중에 들어온 값이 제일 먼저 나감
리스트를 큐로 사용하기 : 제일 나중에 들어온 값이 나중에, 먼저 들어온 값이 먼저 나감


리스트 정렬하기

리스트의 sort 메소드
· L. sort() 함수는 리스트 L 자체를 변경하며 리턴 값을 반환하지 않음
· 디폴트로 cmp(a,b) 내장함수 이용하여 정렬 방식 결정
   * cmp(a,b) 에서 a < b이면 -1, a > b이면 1, a = b이면 0을 리턴
· 기본 정렬 방식을 변경하려면 sort() 함수의 인자로 cmp 함수 입력
· 여러 튜플을 요소로 지닌 리스트 경우 튜플의 첫번째 값이 아닌 다른 위치에 있는 값을
   기준으로 정렬
· sort 함수의 인자로 reverse 값을 받을 수 있음   * false면 정순, true면 역순으로 변환
· sort 함수의 인자로 key 함수 입력 가능한데, key 인자에 함수가 할당되어 있으면 각 리스트
   원소에 대해 비교함수 호출 직전에 key 함수 먼저 호출
  
sorted 내장 함수
· sorted() 내장함수는 L 자체에는 내용 변경 없이 정렬된 새로운 리스트 반환
· 두 번째 인자로 cmp 함수 지정 가능하여 mycmp 사용 시 대소 관계 에 따른 순서를 반대로 바꿈
· 인자로 reverse와 key 지정 가능

L.reverse()와 reversed() 내장 함수
· L.reverse()도 반환값 없이 L 자체를 역순으로 뒤집음 (역순 정렬X)
· reverse() 내장 함수는 sorted() 처럼 내용이 뒤집힌 리스트 반환

일반적인 리스트 생성법을 리스트 내포 방식을 이용하여 작성하기 편하게 변경 가능
L = [ ]
for k in range(10) :      →    L = [ k * k for k in range(10) ]
  L. appened(K*K)          print L
print L


리스트 내포 리터링 문법
[expression for expr1 in sequence 1
        for expr2 in sequence 2 ………
        for exprN in sequence N if condition
· if 뒤 condition 조건이 충족하는 숫자일 때 expression 안 변수 적용
· expr1, expr2의 값들이 expression 안에 쓰임
· expression 평가 결과는 반드시 한 개 원소



반응형

+ Recent posts