Python で文字列をパースしてリストにする
-
Python の
str.split()
関数を使用して文字列を解析してリストする -
Python の
str.strip()
関数を使用して文字列を解析してリストする -
Python の
json.loads()
関数を使用して文字列を解析してリストする -
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.split(",")
関数を使用して ,
に基づいて文字列を分割することにより、stringlist
文字列をリストに変換しました。出力から明らかなように、このアプローチにはいくつかの問題があり、要件を適切に満たしていません。
Python の str.strip()
関数を使用して文字列を解析してリストする
このような文字列をさらにリストに変換するには、str.strip()
関数を使用できます。この str.strip()
関数は、入力パラメーターとして区切り文字/区切り文字を受け取り、区切り文字に基づいて呼び出し文字列を取り除き、よりクリーンなサブ文字列のリストを返します。以下のサンプルコードは、str.strip()
関数を使用して、リストの文字列表現を実際のリストに解析する方法を示しています。
stringlist = '[ "A","B","C" , " D"]'
print(stringlist.strip(","))
出力:
[ "A","B","C" , " D"]
stringlist.split(",")
関数を使用して ,
に基づいて文字列を分割することにより、stringlist
文字列をリストに変換しました。今回は、はるかにクリーンな文字列のリストを取得します。このアプローチの唯一の欠点は、リストの 4 番目の要素のスペースのような不要な空白スペースがあることです。
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']
Python の json.loads(stringlist)
関数を使用して、stringlist
文字列をよりクリーンなリストに変換しました。json.loads()
関数と以前のアプローチの唯一の違いは、ここで区切り文字や区切り文字を指定する必要がないことです。json.loads()
関数は、区切り文字を自動的に決定します。この方法には、不要な空白の問題も含まれています。
Python の ast.literal_eval()
関数を使用して文字列を解析してリストする
特定の問題を解決するもう 1つの方法は、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']
Python の ast.literal_eval()
関数を使用して、stringlist
文字列をよりクリーンなリストに変換しました。前のアプローチと同様に、区切り文字や区切り文字を指定する必要はありません。また、前のアプローチと同様に、この方法には、不要な空白スペースという同じ問題があります。ただし、これらの空白スペースは簡単に削除できます。
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 で文字列からコンマを削除する
- Python で文字列を変数名に変換する
- Python 文字列の空白を削除する方法
- Python で文字列から数字を抽出する
- Python が文字列を日時 datetime に変換する方法
- Python 2 および 3 で文字列を小文字に変換する方法