본문 바로가기
코딩💻

[Python] 다양한 파이썬 함수 코드 :: 정규표현식, Raw String, rjust, zfill, split, starswith, endswith, replace, copy, deepcopy

by 하암꿈 2022. 10. 11.
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