728x90
정규표현식
정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.
데이터를 전처리하거나 가공할 때 유용하게 사용된다.
# 정규표현식 라이브러리
import re
worldlist = ["color", "colour", "work", "working", "fox", "worker", "working"]
for word in worldlist:
if re.search('col.r', word):
print(word)
### 실행결과
color
regular_expressions = '<html><head><title>Title</title>'
print(len(regular_expressions))
print(re.match('<.*>', regular_expressions).span())
print(re.match('<.*>', regular_expressions).group())
### 실행결과
32
(0, 32)
<html><head><title>Title</title>
Raw string
escape에 영향을 받지않고 raw string을 그대로 표시를 해주는 방법이다.
\n : 줄바꿈
\t : 탭
\b :백스페이스
\\ : 백 슬래시
\' : 작은 따옴표
\" : 큰 따옴표
print('raw string을 사용하지 않고고\b 문자 출력하기')
print(r'raw string을 사용하지 않고고\b 문자 출력하기')
# 파일 경로 출력할때 유용하게 사용할수있다.
print('C:\program\nayana')
print('C:\\program\\nayana')
print(R'C:\program\nayana')
### 실행결과
raw string을 사용하지 않고 문자 출력하기
raw string을 사용하지 않고고\b 문자 출력하기
C:\program
ayana
C:\program\nayana
C:\program\nayana
rjust
문자의 길이만큼 원하는 문자를 채워넣을 수 있는 함수이다.
print("2".rjust(3,"0"))
print("50000".rjust(7,"0"))
print("123".rjust(5,"0"))
print("123".rjust(5,"a"))
###실행결과
002
0050000
00123
aa123
zfill
rjust처럼 마찬가지로 원하는 길이 만큼 채워넣을수있다. 0이 채워진다.
print("2".zfill(3))
print("50000".zfill(7))
print('123'.zfill(65))
###실행결과
002
0050000
00000000000000000000000000000000000000000000000000000000000000123
Split
문자열을 원하는 규칙대로 잘라주는 함수이다.
문자열의 원하는 문자를 추출해볼수있다.
string_ = "Hello, I am Jack and I am a data scientist"
print(string_)
print(string_[1])
print(string_[5])
print(string_[0])
print(string_[6])
###실행결과
Hello, I am Jack and I am a data scientist
e
,
H
띄어쓰기를 기준으로 문자열을 나눌수 있다.
string_list = string_.split(" ")
string_list
###실행결과
['Hello,', 'I', 'am', 'Jack', 'and', 'I', 'am', 'a', 'data', 'scientist']
728x90
starswith, endswith
특정문자로 시작하는 문자열을 확인할 수 있는 함수이다.
string_.startswith('Hello')
###실행결과
True
특정문자로 끝나는 문자열을 확인할 수 있는 함수이다.
string_.endswith('tist')
###실행결과
True
string_.endswith('s')
###실행결과
False
replace
문자열을 변경하는 함수이다.
"Jack"을 "John"으로 바꾼다.
string_ = "Hello, I am Jack and I am a data scientist"
print(string_.replace("Jack","John"))
print(string_)
### 실행결과
Hello, I am John and I am a data scientist
Hello, I am Jack and I am a data scientist
copy, deepcopy
copy는 얕은복사
fruits = {"apple", "banana", "cherry"}
fruits_copy = fruits.copy()
fruits_copy
###실행결과
{'apple', 'banana', 'cherry'}
a는 b와 같기 때문에 b가 바뀌면 a도 바뀌게 된다.
a = {'a': 5, 'b': 4, 'c': 8}
b = a
del b['a']
print(b)
print(a)
###실행결과
{'b': 4, 'c': 8}
{'b': 4, 'c': 8}
copy는 b가 바뀌어도 a가 바뀌지 않게된다.
import copy
a = {'a':5, 'b':4, 'c':8}
b = copy.copy(a) # 여기만 다르다
del b['a']
print(b)
print(a)
deepcopy는 깊은복사
deepcopy는 새로운 변수를 만드는것. append 메소드를 썼는데도 값이 변경이 안된다.
copy는 append의 영향을 받는다.
import copy
list_var = [[1,2],[3,4]]
list_var_deepcopy = copy.deepcopy(list_var)
list_var_copy = list_var.copy()
list_var[1].append(5)
print(list_var) # 원본
print(list_var_deepcopy)
print(list_var_copy)
###실행결과
[[1, 2], [3, 4, 5]]
[[1, 2], [3, 4]]
[[1, 2], [3, 4, 5]]
300x250
'코딩💻' 카테고리의 다른 글
그래프와 인접리스트 인접행렬, 순회(전위,중위,후위) (1) | 2022.10.25 |
---|---|
[Machine learning] 단순선형회귀 (Simple Linear Regression), 기준모델 (0) | 2022.10.23 |
[Python] OOP(Object-Oriented Programming), 캡슐화, 상속과 포함, 추상화, 다형성 (0) | 2022.10.12 |
[Python] 다양한 파이썬 함수 코드 :: 반복문(for문), append, insert, extend, remove, pop, del, index, count, enumerate (1) | 2022.10.11 |
[Python] Pandas :: Data Wrangling, EDA, 데이터 전처리 자주 쓰는 코드 (0) | 2022.10.10 |