파이썬에서 문자열에 포함된 알파벳과 숫자를 제외한 나머지 모든 문자(특수문자, 공백 등)를 제거해야 하는 경우가 종종 있습니다. 이럴 때 가장 효율적인 방법은 정규표현식(Regular Expression)을 활용하는 것입니다. 정규표현식 패턴을 정의한 뒤, 해당 패턴에 맞지 않는 문자들을 한 번에 걸러낼 수 있기 때문입니다.정규표현식을 사용한 예제아래 예제는 re 모듈의 sub() 함수를 사용하여 문자와 숫자를 제외한 모든 문자를 제거하는 과정을 보여줍니다.import re my_string = python123:, .@! abc
정규 표현식(Regular Expression)을 사용하여 대문자로 시작하고 그 뒤에 소문자가 이어지는 형태의 문자열인지 확인해야 하는 경우가 있습니다. 이럴 때 match_string이라는 함수를 정의하고, 함수 내부에서 re 모듈의 search 메서드를 호출해 정규식 패턴과 문자열이 일치하는지 검사할 수 있습니다. 함수 외부에서 문자열을 정의한 뒤, 해당 문자열을 인자로 전달하며 함수를 호출하면 됩니다. 정규식 패턴의 의미 [A-Z]+ : 하나 이상의 대문자가 연속으로 나타남 [a-z]+ : 하나 이상의 소문자가 연속으로 나타
정규 표현식(Regular Expression)을 활용하면 문자열이 특정 부분 문자열(substring)로 시작하는지 손쉽게 확인할 수 있습니다. 이를 위해 문자열을 검사하는 함수를 정의하고, re 모듈의 search 메서드를 사용해 문자열이 지정된 부분 문자열로 시작하는지 확인합니다. 예제 아래는 실제 구현 예시입니다. import re def check_string(my_string, sub_string) : if (sub_string in my_string): concat_string = ^ + sub_
문자열이 동일한 문자로 시작하고 끝나는지 확인해야 하는 경우, 정규 표현식(regular expression)을 활용하면 간단하게 처리할 수 있습니다. 파이썬의 re 모듈에서 제공하는 search 함수를 사용해 문자열의 시작과 끝이 특정 문자와 일치하는지 검사하는 메서드를 직접 정의할 수 있습니다. 예제 코드 아래는 이를 구현한 전체 예시입니다. import re regex_expression = r'^[a-z]$|^([a-z]).*\1$' def check_string(my_string): if(re.s
문자열이 영숫자(alphanumeric) 문자로 끝나는지 확인해야 할 때는 정규 표현식(Regular Expression)을 사용하는 것이 가장 간편합니다. 파이썬에서는 내장 모듈인 re를 활용하여 특정 패턴과 일치하는지 손쉽게 검사할 수 있습니다.이 글에서는 문자열의 마지막 문자가 알파벳(a~z, A~Z) 또는 숫자(0~9)인지 판별하는 메서드를 정의하고, 그 결과를 출력하는 방법을 소개합니다.핵심 아이디어정규 표현식 [a-zA-Z0-9]$에서 $ 기호는 문자열의 끝을 의미합니다. 따라서 이 패턴은 문자열의 마지막 문자가 영문자나
정규 표현식(Regular Expression)을 사용해 주어진 문자열이 특정 문자들만으로 구성되어 있는지 확인해야 하는 경우가 있습니다. 이때는 먼저 정규식 패턴을 정의한 뒤, 대상 문자열이 해당 패턴을 따르는지 검사하면 됩니다.파이썬에서는 기본 제공되는 re 모듈을 활용하면 간단하게 처리할 수 있습니다. 아래 예제를 통해 살펴보겠습니다.예제 코드import re def check_string(my_string, regex_pattern): if re.search(regex_pattern, my_string):
문자열에서 특정 길이보다 긴 단어를 찾아야 하는 경우가 자주 있습니다. 이럴 때는 문자열을 공백을 기준으로 분리한 뒤 각 단어를 순회하면서, 단어의 길이를 주어진 길이와 비교하고 조건을 만족하는 단어만 결과로 반환하는 함수를 정의하면 됩니다. 예제 코드 아래는 위 로직을 구현한 전체 예제입니다. def string_check(string_length, my_string): result_string = [] words = my_string.split( ) for x in words: if len(x
문자열이 모음(vowel)으로 시작하는지 확인해야 하는 경우, 파이썬에서 제공하는 startswith 메서드를 활용하면 됩니다. 이 메서드는 특정 문자(여기서는 모음)로 문자열이 시작하는지 여부를 손쉽게 검사할 수 있게 해줍니다.예제 코드아래는 리스트에서 모음으로 시작하는 문자열만 골라내는 방법을 보여주는 예제입니다.my_list = [Hi, there, how, are, u, doing] print(The list is : ) print(my_list) my_result = [] vowel = aeiou for sub in m
Pandas에서 다항식 보간(Polynomial Interpolation)을 사용해 NaN(결측값)을 채우려면 interpolate() 메서드를 활용하면 됩니다. 이때 method 매개변수를 polynomial로 지정하고, order 매개변수에 다항식의 차수를 함께 설정해야 합니다. 다항식 보간은 기존 데이터 포인트를 지나는 다항식 곡선을 피팅(fitting)한 뒤, 그 곡선 위의 값을 이용해 결측값을 추정하는 방식입니다. 단순 선형 보간보다 데이터의 곡률 변화를 더 잘 반영할 수 있다는 장점이 있습니다. 1. 필요한 라이브러리
Pandas에서 DataFrame의 각 열에 포함된 고유한(unique) 값을 확인하려면 unique() 메서드를 사용하면 됩니다. 이 메서드의 인자로 원하는 열을 지정하기만 하면, 해당 열에서 중복을 제거한 값들이 순서대로 반환됩니다. 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 1. 중복 데이터가 있는 DataFrame 만들기 이번 예제에서는 학생 이름과 시험 결과를 담은 두 개의 열(Student, Result)로 구성된 DataFrame을 생성합니다. 의도적으로 중복된 레코드를 포함시켜 uniq
문자열에서 마지막 단어의 길이를 구해야 하는 경우가 종종 있습니다. 이를 위해 문자열 앞뒤의 불필요한 공백을 제거한 뒤 문자열을 순회하는 함수를 정의할 수 있습니다. 공백이 나타날 때마다 카운트가 초기화되고, 마지막 단어가 끝나는 시점에 카운터에는 해당 단어의 길이가 저장되어 결과로 반환됩니다. 예제 코드 아래는 실제 동작 예시입니다. def last_word_length(my_string): init_val = 0 processed_str = my_string.strip() for i in range(len(p
정수 리스트가 주어졌을 때 세 번째로 큰 숫자를 찾는 것은 코딩 테스트나 실무에서 자주 마주치는 문제입니다. 이 글에서는 리스트를 매개변수로 받는 함수를 정의하고, 음의 무한대(-inf)로 초기화된 세 개의 부동소수점 값을 활용해 상위 세 개의 큰 숫자를 추적하는 방법을 소개합니다. 핵심 아이디어 리스트를 내림차순으로 정렬한 뒤 세 번째 값을 꺼내는 간단한 방법도 있지만, 여기서는 정렬 없이 한 번의 반복만으로 답을 구하는 방식을 사용합니다. 중복된 값은 하나로 취급하며, 서로 다른 숫자가 세 개 미만이라면 가장 큰 값을 대신 출력
주어진 숫자 범위 내에서 소수(prime number)를 찾아야 하는 경우가 종종 있습니다. 이때 시작 값과 끝 값을 입력받은 뒤 해당 범위를 순회하면서 각 숫자가 소수인지 판별하게 됩니다. 이 과정에서 나머지를 구하는 %(모듈로) 연산자를 활용합니다.예제 코드다음 예제는 670부터 699 사이의 소수를 찾는 과정을 보여줍니다. 1: for i in range(2, num): if (num % i) == 0: break else: print(num)실행 결과
Pandas DataFrame의 문자열 데이터에서 숫자를 제거하려면 replace() 메서드를 활용하면 됩니다. 정규 표현식과 함께 사용하면 문자열에 포함된 모든 숫자를 손쉽게 삭제할 수 있습니다.먼저 필요한 라이브러리를 임포트합니다.import pandas as pd1. 샘플 DataFrame 생성학생 기록이 담긴 DataFrame을 생성합니다. 여기서 Id 열은 S01, S02처럼 숫자가 포함된 문자열을 가지고 있습니다.dataFrame = pd.DataFrame( { Id: [S01,S02,S03,S04,
배열(리스트) 안에 특정 숫자와 그 숫자의 두 배에 해당하는 값이 동시에 존재하는지 확인해야 하는 경우가 있습니다. 이때는 리스트를 반복(iteration)하면서 각 요소에 2를 곱한 뒤, 해당 값이 리스트 안에 있는지 검사하면 됩니다.예제 코드아래는 이를 구현한 예제입니다.def check_double_exists(my_list): for i in range(len(my_list)): for j in (my_list[:i]+my_list[i+1:]): if 2*my_list[i] == j:
문제 개요리스트 안에 어떤 숫자와 그 숫자의 3배에 해당하는 값이 동시에 존재하는지 확인해야 하는 경우가 있습니다. 이럴 때는 리스트를 순회하면서 각 요소에 3을 곱한 값이 리스트 내 다른 요소로 존재하는지 검사하는 함수를 정의하면 됩니다.예제 코드아래는 실제 구현 예시입니다.def check_triple_exists(my_list): for i in range(len(my_list)): for j in (my_list[:i] + my_list[i+1:]): if 3 * my_list[i] == j:
두 문자열이 동형(isomorphic) 관계인지 확인해야 하는 경우가 있습니다. 여기서 동형이란 한 문자열의 각 문자를 일관된 규칙으로 다른 문자에 대응시켰을 때 두 번째 문자열과 정확히 일치하는지를 의미합니다. 예를 들어 egg와 add는 e→a, g→d라는 대응 규칙으로 동형 관계입니다.이를 확인하려면 두 개의 문자열을 매개변수로 받는 함수를 정의하고, 문자열의 길이만큼 반복하면서 ord() 메서드를 사용해 각 문자를 정수(아스키 코드 값)로 변환하여 매핑 정보를 저장하면 됩니다. 또한 길이가 다른 두 문자열은 애초에 동형일 수
시간 문자열에 ?처럼 알 수 없는(숨겨진) 자릿수가 포함되어 있을 때, 이를 적절한 숫자로 대체하여 만들 수 있는 가장 늦은 유효 시간을 구해야 하는 경우가 있습니다. 이를 위해서는 먼저 숨겨진 자릿수를 찾아내는 메서드를 정의한 뒤, 각 자릿수의 위치(인덱스)에 따라 올바른 값으로 변환하면 됩니다. 예제 다음은 그 구현 예시입니다. def find_latest_time(my_time): my_time = list(my_time) for i in range(len(my_time)): if my_time[i] =
Pandas에서 두 개의 DataFrame을 병합하려면 merge() 함수를 사용합니다. 왼쪽 외부 조인(Left Outer Join)은 merge() 함수의 how 매개변수에 다음과 같이 설정하여 구현할 수 있습니다.how = left왼쪽 외부 조인은 왼쪽 DataFrame의 모든 행을 그대로 유지하며, 오른쪽 DataFrame에 일치하는 값이 없는 경우 해당 셀은 NaN(결측값)으로 채워집니다.먼저 pandas 라이브러리를 별칭(alias)과 함께 가져옵니다.import pandas as pd이제 병합할 두 개의 DataFram
주어진 숫자가 4의 거듭제곱인지 확인해야 하는 경우, 정수를 매개변수로 받는 check_power_of_4라는 이름의 메서드를 정의하면 됩니다. 이 메서드는 나머지 연산자(%)와 나눗셈 연산자(//)를 활용해 조건을 검사한 뒤, 결과에 따라 True 또는 False를 반환합니다. 예시 아래는 실제 동작을 보여주는 예시 코드입니다. def check_power_of_4(my_val): if (my_val == 0): return False while (my_val != 1): if (my_val % 4