오늘 학습 주제
1. 리스트
2. 튜플
3. 딕셔너리
4. 문자열 처리
5. 정규 표현식
리스트(List)
가변 자료형
여러 항목을 담을 수 있는 순서가 있는 컬렉션
데이터 타입에 상관없이 마음대로 집어 넣을 수 있다
데이터를 추출하거나 변경도 가능하다
패킹: 한 변수에 여러 개의 데이터를 할당하여 하나로 합쳐주는 것
언패킹: 한 변수에 들어있는 데이터들을 각각의 변수로 반환하는 것
튜플(Tuple)
불변 자료형
()을 사용하여 정의한다
적은 메모리 공간을 사용한다
딕셔너리 키로 사용이 가능하다
함수의 파라미터는 튜플로 전달된다
call by value
변수에 담긴 값 그 자체를 복사하는 방식
함수 내에서 해당 변수를 바꿔도 영향이 없다
불변형 타입(정수형, 문자형 등)에서 사용
call by reference
인자로 받은 변수의 주소 값을 전달하는 방식
변수 값에 변화가 생기면 주소 값을 공유하는 변수 모두 변경된다
가변형 타입(리스트, 딕셔너리)에서 사용
Copy
리스트의 값만 복사하여 새로운 주소 값의 변수에 할당
copy 모듈을 추가해야 한다
딕셔너리(Dictionary)
단어에서 알 수 있듯이 사전이다
Key와 Value를 한 쌍으로 하는 자료형
Key를 통해 Value를 찾는다
슬라이싱 불가
setdefault()에서 첫번째 파라미터는 필수 입력 사항이나 두번째 파라미터는 입력하지 않아도 된다
첫번째 파라미터가 이미 딕셔너리에 존재한다면 그 Key의 값을 리턴하고 존재하지 않는다면 Key를 추가한다
기타
문자열 처리
이스케이프 문자
정규표현식
복잡한 문자열을 처리할 때 사용하는 기법
정규식을 사용하면 좋은 경우
-이메일, URL, 전화번호 등 입력 유효성 검증
-SQL injection, HEML 태그 등 pattern에 기반한 감지와 치환
정규식을 사용하지 않는 것이 더 좋은 경우
- 단순 길이 계산
- 비교, 추출, 접합, 자르기
정규 표현식에는 다음과 같은 메타 문자가 있다
메타문자 | 설명 | 예시 | |
dot( . ) | 임의의 모든 문자를 의미한다 줄바꿈(\n)을 제외한 모든 문자와 매치 확인 |
[a.z]: a와 z사이에 어떤 문자가 들어가도 True |
|
캐럿( ^ ) | 줄의 시작을 의미한다 | [^abc] : abc로 시작하는 것 |
|
달러( $ ) | 줄의 끝을 의미한다 | [abc$] : abc로 끝나는 것 |
|
애스터리스크( * ) | 반복을 의미한다 애스터리스크(*) 앞에 있는 문자가 반복되는 것을 매치 확인 반복 횟수 0부터 사용 |
[ab*c] : b가 반복되는 것 반복하지 않아도 True |
|
Plus( + ) | 애스터리스크(*)와 같이 반복을 나타낸다 최소 1번 이상 반복할 때 사용 반복 횟수 1부터 사용 |
[ab+c] : b가 1회 이상 반복하는 것 |
|
물음표( ? ) | 있어도 되고 없어도 되는 문자 확인 | [ab?c] : b가 있어도 되고 없어도 되고 |
|
괄호 ( ) | 그룹을 의미한다 | [(abc)] : abc가 묶여있는 것을 확인 |
|
중괄호 { } | 반복 제한을 의미한다 중괄호 { } 안에 지정된 숫자만큼 반복해야 된다 중괄호 { } 안에 쉼표(,)를 넣어 반복 범위 지정 가능 |
ab{2} : b를 2회 반복하는 것 ab{2,5}c : b를 2~5회 반복하는 것 |
|
대괄호 [ ] | [ ] 사이의 문자들과 매치 확인 하이픈(-)을 사용하면 범위를 지정할 수 있다 대괄호 [ ]안에서 캐럿(^)은 반대(not)를 의미한다 |
[abc]: abc가 있으면 True [a-c]: a~c까지 있으면 True [^abc]: abc가 없으면 True |
|
백슬래시 ( \ ) | 표기법을 사용할 때 사용 | \d \s \b \w | |
파이프( | ) | OR을 의미한다 | [a|b]: a나 b 중 하나만 있어도 True |
- 정규식 함수 -
함수 | 설명 |
match(pattern, string) | string이 pattern과 일치하는지 검사 |
search(pattern, string ) | 첫번째 일치하는 pattern 찾기 |
findall(pattern, string ) | 일치하는 모든 pattern 찾기 |
sub(pattern, replace) | pattern을 replace로 치환 |
split(pattern, string) | 문자열 대신에 pattern으로 문자열을 리스트로 분리 |
compile(pattern) | pattern을 컴파일하여 정규식 객체로 반환 |
- 참고 -
https://riverpark94.github.io/programing_study/2020/06/09/Python-TIL2/
'SK shieldus Rookies 16기' 카테고리의 다른 글
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(6일차) (0) | 2023.10.30 |
---|---|
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(5일차) (0) | 2023.10.27 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(4일차) (0) | 2023.10.26 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(2일차) (0) | 2023.10.24 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(1일차) (0) | 2023.10.23 |