Python에서 문자열을 나열하여 구문 분석

Muhammad Maisam Abbas 2023년1월30일
  1. Python에서 str.split() 함수를 사용하여 목록으로 문자열 구문 분석
  2. Python에서 str.strip() 함수를 사용하여 목록으로 문자열 구문 분석
  3. Python에서 json.loads() 함수를 사용하여 나열할 문자열 구문 분석
  4. Python에서 ast.literal_eval() 함수를 사용하여 목록으로 문자열 구문 분석
Python에서 문자열을 나열하여 구문 분석

이 튜토리얼에서는 파이썬에서 문자열을 리스트로 파싱하는 방법을 배울 것입니다.

Python에서 str.split() 함수를 사용하여 목록으로 문자열 구문 분석

시나리오에서 '[ "A","B","C" , " D"]'와 같은 목록의 문자열 표현이 있고 해당 표현을 실제 문자열 목록으로 변환하려는 경우 str.split() 함수를 사용하여 ,를 기준으로 문자열을 분할합니다. str.split() 함수는 구분 기호/구분 기호를 입력 매개변수로 사용하고 구분 기호에 따라 호출 문자열을 분할하고 하위 문자열 목록을 반환합니다. 아래 코드 샘플은 str.split() 함수를 사용하여 목록의 문자열 표현을 실제 목록으로 구문 분석하는 방법을 보여줍니다.

stringlist = '[ "A","B","C" , " D"]'
print(stringlist.split(","))

출력:

['[ "A"', '"B"', '"C" ', ' " D"]']

stringlist 문자열을 stringlist.split(",") 함수를 사용하여 ,를 기반으로 분할하여 목록으로 변환했습니다. 출력에서 알 수 있듯이 이 접근 방식에는 몇 가지 문제가 있으며 요구 사항을 적절하게 충족하지 않습니다.

Python에서 str.strip() 함수를 사용하여 목록으로 문자열 구문 분석

이와 같은 문자열을 목록으로 추가로 변환하려면 str.strip() 함수를 사용할 수 있습니다. 이 str.strip() 함수는 구분 기호/구분 기호를 입력 매개 변수로 사용하고 구분 기호를 기반으로 호출 문자열을 제거하고 훨씬 더 깨끗한 하위 문자열 목록을 반환합니다. 아래 샘플 코드는 str.strip() 함수를 사용하여 목록의 문자열 표현을 실제 목록으로 구문 분석하는 방법을 보여줍니다.

stringlist = '[ "A","B","C" , " D"]'
print(stringlist.strip(","))

출력:

[ "A","B","C" , " D"]

stringlist 문자열을 stringlist.split(",") 함수로 ,를 기준으로 분할하여 목록으로 변환했습니다. 이번에는 훨씬 더 깨끗한 문자열 목록을 얻습니다. 이 방법의 유일한 단점은 목록의 네 번째 요소에 있는 공백과 같이 원치 않는 공백이 있다는 것입니다.

Python에서 json.loads() 함수를 사용하여 나열할 문자열 구문 분석

특정 문제에 대해 json 모듈을 사용할 수도 있습니다. json.loads() 함수는 JSON 객체를 매개변수로 받아 JSON 객체를 역직렬화하고 결과를 목록으로 반환합니다. 이 경우 JSON 객체 매개변수는 문자열일 수도 있습니다. 아래 샘플 코드는 json.loads() 함수를 사용하여 목록의 문자열 표현을 실제 목록으로 구문 분석하는 방법을 보여줍니다.

import json

stringlist = '[ "A","B","C" , " D"]'
print(json.loads(stringlist))

출력:

['A', 'B', 'C', ' D']

우리는 stringlist 문자열을 Python의 json.loads(stringlist) 함수를 사용하여 더 깔끔한 목록으로 변환했습니다. json.loads() 함수와 이전 접근 방식 간의 유일한 차이점은 여기에 구분 기호 또는 구분 기호를 지정할 필요가 없다는 것입니다. json.loads() 함수는 자동으로 구분자를 결정합니다. 이 방법에는 원치 않는 공백 문제도 포함되어 있습니다.

Python에서 ast.literal_eval() 함수를 사용하여 목록으로 문자열 구문 분석

특정 문제를 해결하는 또 다른 방법은 ast 모듈입니다. ast.literal_eval() 함수는 튜플, 사전, 목록 및 집합과 같은 Python 리터럴 구조의 문자열 표현을 사용합니다. 문자열을 해당 리터럴 구조에 전달하면 결과가 반환됩니다. 우리의 경우 목록의 문자열 표현이 있습니다. 따라서 ast.literal_eval() 함수는 이 문자열을 가져와서 목록으로 구문 분석하고 결과를 반환합니다. 다음 코드 조각은 ast.literal_eval() 함수를 사용하여 목록의 문자열 표현을 실제 목록으로 구문 분석하는 방법을 보여줍니다.

import ast

stringlist = '[ "A","B","C" , " D"]'
print(ast.literal_eval(stringlist))

출력:

['A', 'B', 'C', ' D']

stringlist 문자열을 Python의 ast.literal_eval() 함수를 사용하여 더 깨끗한 목록으로 변환했습니다. 이전 접근 방식과 유사하게 구분 기호나 구분 기호를 지정할 필요가 없습니다. 또한 이전 접근 방식과 유사하게 이 방법도 원하지 않는 공백 문제가 동일합니다. 그러나 이러한 공백은 쉽게 제거할 수 있습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python String

관련 문장 - Python List