문자열 변수에 문자열 추가하기: + 또는 += 연산자문자열 변수에 새로운 문자열을 덧붙이는 가장 좋은 방법은 + 또는 += 연산자를 사용하는 것입니다. 코드의 가독성이 뛰어나고 실행 속도도 빠르기 때문입니다. 두 연산자 간의 성능 차이는 사실상 없으므로, 상황에 맞게 편한 쪽을 선택하면 됩니다.greeting = 안녕하세요 greeting += , 반갑습니다! print(greeting) # 안녕하세요, 반갑습니다!참고로 두 개의 문자열만 다루는 경우에는 리스트의 append() 메서드를 활용하는 방법도 사용할 수 있습니다.문자열
Python 문자열에서 특수 문자와 공백 제거하기문자열에서 모든 특수 문자, 구두점, 공백을 제거하려면 문자열을 순회하면서 알파벳과 숫자(alphanumeric)가 아닌 문자들을 걸러내면 됩니다. 가장 간단한 방법은 isalnum() 메서드를 활용하는 것입니다.방법 1: isalnum()과 조건식 사용isalnum()은 해당 문자가 알파벳 또는 숫자인지 판별하는 메서드입니다. 이를 리스트 컴프리헨션(제너레이터 표현식)과 함께 사용하면 알파벳과 숫자만 남길 수 있습니다.>>> string = Hello $#! Peop
Python에서 문자열 안에 두 번 이상 등장하는 가장 긴 부분 문자열(반복 시퀀스)을 찾으려면 collections.defaultdict를 활용하여 입력 문자열의 각 위치에서 시작하는 모든 부분 문자열의 등장 횟수를 집계하는 방식을 사용할 수 있습니다. 여기서 getsubs 함수는 제너레이터(generator)로 구현되어 있으며, 호출될 때마다 지정된 위치에서 시작하는 부분 문자열을 하나씩, 점점 짧은 길이로 생성하여 반환합니다. 구현 예제 from collections import defaultdict def getsubs(lo
개요Python에서 문자열이 실수(float)로 변환 가능한지 확인해야 하는 경우가 자주 있습니다. 예를 들어 사용자 입력이나 외부 데이터를 처리할 때, 숫자로 변환하기 전에 해당 문자열이 유효한 실수인지 검증하면 오류를 미리 방지할 수 있습니다.try-except 문으로 직접 변환 시도하기가장 기본적인 방법은 float() 함수를 사용하여 문자열을 변환하는 것입니다. 변환이 성공하면 실수 값이 반환되고, 실패하면 ValueError가 발생합니다.try: print(float(112.15))
가장 긴 공통 부분 문자열(Longest Common Substring) 알고리즘을 동적 프로그래밍(Dynamic Programming) 기법으로 구현하면 O(nm)의 시간 복잡도로 실행됩니다. 여기서 n과 m은 각각 비교 대상인 두 문자열의 길이입니다. 다음은 이 알고리즘을 파이썬으로 구현한 예시입니다. 예제 코드 def longest_common_substring(s1, s2): m = [[0] * (1 + len(s2)) for i in range(1 + len(s1))] longest, x_longest = 0
파이썬에서 주어진 문자가 문자열 안에 존재하는지 확인하고 싶다면 in 연산자를 사용하면 됩니다. 가장 간단하고 직관적인 방법으로, 결과는 불리언(Boolean) 값인 True 또는 False로 반환됩니다.in 연산자로 단일 문자 확인하기>>> s = Hello world >>> e in s True위 예제에서 문자열 s 안에 문자 e가 포함되어 있으므로 True가 출력됩니다.여러 문자를 검색할 때는 집합(set)과 any() 활용검색하려는 문자가 하나가 아니라 여러 개라면 집합(set)을 사용하는 것
문자열에서 날짜를 추출하려면 먼저 해당 문자열에 포함될 수 있는 날짜의 형식을 알아야 합니다. 형식을 파악한 후에는 정규 표현식(regular expression)으로 날짜 부분을 추출하고, datetime.datetime.strptime 함수로 이를 파싱(parse)하면 됩니다.기본 원리예를 들어, 문자열에 YYYY-MM-DD 형식의 날짜가 포함되어 있다면 다음과 같은 코드로 날짜를 추출하고 파싱할 수 있습니다.예제 코드import re, datetime s = I have a meeting on 2018-12-10 in New
Python에서는 정규 표현식(regular expression)을 활용하면 문자열에 포함된 모든 정수 값을 등장 순서대로 손쉽게 추출할 수 있습니다. 아래 예제 코드를 통해 그 방법을 살펴보겠습니다.정규 표현식으로 정수 추출하기re 모듈의 findall() 함수를 사용하면 문자열 내의 모든 숫자 패턴을 찾아 리스트로 반환받을 수 있습니다. 이후 map()과 int()를 조합하여 각 값을 정수형으로 변환합니다.import re s = 12 hello 52 19 some random 15 number # 숫자를 추출한 뒤 int로
Python에서 문자열의 특정 문자 제거하기Python으로 개발하다 보면 문자열에 포함된 특정 문자를 제거해야 하는 경우가 자주 발생합니다. 이 글에서는 replace() 메서드와 정규표현식을 활용해 문자열에서 원하는 문자를 손쉽게 삭제하는 다양한 방법을 소개합니다.1. replace() 메서드로 단일 문자 제거문자열 클래스에는 부분 문자열을 다른 문자열로 교체할 수 있는 replace() 메서드가 내장되어 있습니다. 이 메서드를 사용하면 제거하고 싶은 문자를 빈 문자열("")로 대체하여 사실상 삭제 효과를 얻을
CSV 형식의 문자열을 배열(리스트)로 변환하는 가장 간단한 방법은 str.split() 메서드를 사용하는 것입니다. 쉼표(,)를 기준으로 문자열을 분리한 뒤, 각 항목에 strip()을 적용하면 앞뒤 공백까지 깔끔하게 제거할 수 있습니다. >>> s = 1, John Doe, Boston, USA >>> print([item.strip() for item in s.split(,)]) [1, John Doe, Boston, USA] 여러 줄의 CSV 문자열 처리하기 문자열에 여러 줄의 CSV 데이터가
파이썬에서 문자열 안에 n번째로 등장하는 부분 문자열의 위치를 찾으려면 split() 메서드에 최대 분할 횟수(maxsplit)를 n+1로 지정해 문자열을 나누는 방법을 활용할 수 있습니다. 분할 결과로 얻은 리스트의 길이가 n+1보다 작거나 같다면, 해당 부분 문자열이 n번 이상 등장하지 않았다는 의미이므로 -1을 반환하면 됩니다.부분 문자열이 충분히 존재한다면, 인덱스는 아래의 간단한 공식으로 계산할 수 있습니다.인덱스 = 원본 문자열 길이 − 마지막 분할 조각의 길이 − 부분 문자열 길이예제def findnth(string,
Python에서는 eval 함수를 사용하면 문자열 형태로 저장된 수학 표현식을 그대로 계산할 수 있습니다.사용 예시예를 들어, 문자열 안에 (4*5) + 22라는 수식이 들어 있다면 eval 함수로 이를 평가하여 결과값을 얻을 수 있습니다.>>> s = "(4*5) + 22">>> eval(s)42동작 방식eval은 Python의 연산자 우선순위 규칙을 그대로 따릅니다. 즉, 괄호가 없는 경우에도 일반적인 수학 표현식과 동일한 순서(곱셈·나눗셈을 덧셈·뺄셈보다 먼저 수행)로 계산됩니
Python에서 %s와 %r의 차이점%s 지정자는 객체를 str() 함수로 변환하여 출력하고, %r 지정자는 repr() 함수로 변환합니다.정수처럼 일부 객체에서는 두 지정자가 동일한 결과를 반환하지만, repr()에는 특별한 기능이 있습니다. 가능한 타입에 한해 관례적으로 유효한 파이썬 문법 형태의 문자열을 반환하는데, 이 문자열은 해당 객체를 모호함 없이 다시 재현(recreate)할 수 있습니다.예를 들어 개행 문자(\n)가 포함된 문자열이 있다고 가정해 보겠습니다. %s를 사용하면 실제로 줄바꿈이 적용되어 화면에 여러 줄로
Python에서 + 연산자 없이 문자열을 연결하는 방법 Python에서는 + 연산자를 사용하지 않고도 문자열 클래스(str)의 str.join() 메서드를 활용해 여러 문자열을 하나로 합칠 수 있습니다. 이 메서드는 호출한 문자열을 구분자(separator)로 사용하여, 인자로 전달된 문자열 리스트의 모든 요소를 연결해 줍니다. 사용 예시 >>> .join([Hello, World]) Hello World >>> .join([Hello, World, People]) HelloWorldPeople &
파이썬 프로그래밍을 하다 보면 주어진 문자열이 특정 부분 문자열의 반복으로만 이루어져 있는지 확인해야 하는 경우가 있습니다. 예를 들어 012012012처럼 012가 여러 번 반복된 형태인지 판별하는 것이죠.문자열 반복(주기성) 검사의 원리이를 확인하는 가장 간단한 방법은 문자열을 두 번 이어 붙인 결과(s+s) 안에서 원래 문자열의 회전(rotation)이 존재하는지 검사하는 것입니다.그 이유는 다음과 같습니다. 어떤 문자열이 주기적(periodic)이라는 것은, 그 문자열이 자기 자신의 사소하지 않은(nontrivial) 회전과
json.loads()를 사용한 JSON 문자열 변환 Python에서 JSON 형식의 문자열을 딕셔너리(dictionary) 객체로 변환하려면 json 모듈의 json.loads() 메서드를 사용하면 됩니다. 이 메서드는 유효한(valid) JSON 문자열을 입력받아, 내부의 모든 요소에 자유롭게 접근할 수 있는 딕셔너리를 반환합니다. >>> import json >>> s = {success: true, status: 200, message: Hello} >>> d = json.lo
문자열 끝의 부분 문자열 제거하기파이썬에서 문자열 끝에 있는 특정 부분 문자열(substring)을 제거하려면, 먼저 endswith() 메서드를 사용하여 해당 문자열이 그 부분 문자열로 끝나는지 확인해야 합니다. 만약 그렇다면 슬라이싱(slicing)을 활용해 부분 문자열을 제외한 나머지 부분만 남기면 됩니다.endswith()와 슬라이싱 활용def rchop(string, ending): if string.endswith(ending): return string[:-len(ending)] return
파이썬에서는 문자열 클래스가 제공하는 splitlines() 메서드를 사용하여 여러 줄로 된 문자열을 각 줄별로 분할할 수 있습니다.splitlines() 메서드 사용 예제>>> some multi line string.splitlines() [some, multi line, string]위 예제에서 볼 수 있듯이, splitlines() 메서드는 줄 바꿈 지점을 기준으로 문자열을 나누어 각 줄을 요소로 갖는 리스트를 반환합니다.split() 메서드에 구분자 지정하기또 다른 방법으로, split() 메서드에 구분자
세미콜론으로 구분된 문자열을 딕셔너리로 변환하기파이썬에서 다음과 같은 형태의 문자열이 있고, 이를 딕셔너리(dictionary)로 변환하고 싶다고 가정해 보겠습니다.Name1=Value1;Name2=Value2;Name3=Value3이 작업은 생각보다 훨씬 간단합니다. 핵심 아이디어는 문자열을 두 단계로 나누는 것입니다.먼저 세미콜론(;)을 기준으로 문자열을 분할하여 Name1=Value1, Name2=Value2, Name3=Value3 형태의 개별 항목들을 얻습니다.그다음 각 항목을 등호(=)를 기준으로 한 번 더 분할하여 키(
Python 딕셔너리를 문자열로 변환할 때 가장 널리 사용되고 권장되는 방식은 JSON(JavaScript Object Notation) 형식입니다. 표준 라이브러리의 json 모듈을 활용하면 별도의 설치 과정 없이 간단하게 직렬화와 역직렬화를 모두 처리할 수 있습니다.핵심 함수 정리json.dumps(dict): 딕셔너리를 JSON 형식의 문자열로 변환합니다.json.loads(string): JSON 문자열을 다시 딕셔너리 객체로 되돌립니다.예제 코드다음은 주어진 딕셔너리를 직렬화한 후 다시 역직렬화하는 기본적인 예제입니다.&g