ROKO

[Python] multiple delimiter problem 본문

Develop

[Python] multiple delimiter problem

RO_KO 2023. 2. 24. 16:00
728x90

python 에서 데이터를 읽고 쓸때 구분자 처리를 해야하는 경우가 많다. 만약 없애야 할 구분자가 여러가지라면 어떻게 해야할까?

 

우리의 목표를 잘 생각해보자.

구분자가 무엇이든 상관없이 구분자들을 중심으로 잘 분리만 해주면 된다.

 

보통 구분자 처리는 split()함수를 사용하는데 하나의 구분자 밖에 해결하지 못하는 한계가 있다.

그렇다면 아래와 같은 방법을 사용하면 어떨까.

  1. 모든 구분자를 하나로 통일
  2. 통일한 구분자를 중심으로 split() 함수 사용
x = "123,23.432$012"
x = x.replace('.', ',').replace('$',',')
x = x.split(',')

print(x)

print(x) 결과

Generalization

만약 구분자가 10000개 이상이라면 replace를 하드코딩으로 10000번을 해야한다.

loop문으로 해결한다고 한들 시간복잡도 부분에서 손해이고 하드코딩을 아주 조금 덜하는 수준이다.

일반화된 상황에선 어떤 방법이 있을까?

 

\(\rightarrow\) 정규표현식, re library를 이용하는 것이다.

 

x = "123,23.432$012"

x = re.split('[,.$]',x)

print(x)

print(x) 결과

단 한줄로 해결된 모습니다. 10000개의 구분자를 list로 정리할 수 있다면 해당 식의 parameter로 넣어주면 그만이다.

정규표현식의 문법으로 다양한 표현이 가능하므로 더 복잡한 패턴도 구분할 수 있을 것이다.

기회가 된다면 정규표현식의 문법을 알아보도록 하자.

728x90

'Develop' 카테고리의 다른 글

[Python] Change element type in list  (0) 2023.02.24
Visual studio code Debugging  (0) 2023.02.24
Developer Track  (0) 2023.02.23
[Linux] GPU monitoring  (0) 2023.02.19
Comments