Pythonで文字列をリストに変換する色々な方法を解説する

スポンサーリンク
スポンサーリンク

イントロダクション

プログラミングをしていると、Pythonで文字列をリストに変換する必要が出てくることがあります。

それは他の理由かもしれません。

しかし、ここで疑問が生じます。

どうすれば文字列をさまざまな形式のリストに変換できるのでしょうか。

そこで、この記事では、Pythonで文字列をリストに変換する方法について学びます。


Pythonで文字列をリストに変換するメソッド

Pythonで文字列をリストに変換するのはとても簡単な作業です。

それは、私たち自身の要件に従って、異なるメソッドに従うことによって達成することができます。

この記事では、さまざまなケースでPythonで文字列をリストに変換するすべてのメソッドを扱うつもりです。

以下に、すべてのメソッドをリストアップしました。

  • 文字列から文字列のリストへ
  • 文字列から文字のリストへ
  • 文字列のリストからリストのリストへ
  • CSVからリストへ
  • 整数からなる文字列→整数のリスト

それでは、上記のテクニックを一つずつ解説していきます。


1. 文字列から文字列のリストへ

Pythonで文字列をリストに変換する場合、親文字列の構成文字列(以前は’,’やスペースで区切られていた)を含むこのメソッドを使用してタスクを実行します。

例えば、”Python is great “という文字列があり、与えられた名前だけを含むリストが欲しい場合、空白の位置に基づいて文字列を分割することで、必要なリストを取得することができます。

例題を見て、理解を深めましょう。

#given string
string1="Python is great"
 
#printing the string
print("Actual String: ",string1)
   
#gives us the type of string1
print("Type of string: ",type(string1)) 
 
print("String coverted to list :",string1.split())
#prints the list given by split()

結果を出力すると、以下の様になります。

#given string
string1="Python"
 
#printing the string
print("Actual String: ",string1)
#confirming the type()
print("Type of string: ",type(string1))
 
#type-casting the string into list using list()
print("String coverted to list :
"
,list(string1))

上のコードでは

  • 文字列 string1="Python is great" を考え、それを構成する文字列のリストに変換しようとします。
  • type() は、メソッドに渡されたオブジェクトの型(この場合は文字列)を与えます。
  • split() は基本的に、与えられたセパレータに基づいて文字列をリストに分割するために使用されます。私たちのコードでは、単語はスペースで区切られていました。デフォルトでは、split()メソッドに何も渡さない場合、空白の位置を基準に文字列が分割されます。
  • したがって、セパレータのパラメータを指定していないにもかかわらず、 split() メソッドはそれぞれの文字列のリストを与えてくれます。

2. 文字列から文字列のリストへ

文字列の中に存在する文字のリストが必要な場合はどうでしょうか?この場合、Pythonの list() メソッドを用いて文字列からリストへの直接型変換を行えばよいでしょう。

確かに、入力文字列が “abcd” のような場合、 list() メソッドを使って文字列をリストにタイプキャストすると、個々の文字 ‘a’, ‘b’, ‘c’, ‘d’ を要素とするリストが得られます。

以下のコード例を見てください。

#Given string
string1="This is Python"
 
print("The actual string:",string1)
 
#converting string1 into a list of strings
string1=string1.split()
 
#applying list method to the individual elements of the list string1
list1=list(map(list,string1))
 
#printing the resultant list of lists
print("Converted to list of character list :
"
,list1)

結果は以下の通りです。

#given string
string1="abc,def,ghi"
print("Actual CSV String: ",string1)
print("Type of string: ",type(string1))
 
#spliting string1 into list with ',' as the parameter
print("CSV coverted to list :",string1.split(','))

コードを理解する

  • まず、文字列 string1 を “Python” として初期化し、 type() メソッドを用いてその型を表示しています。
  • そして、 list() メソッドを用いて文字列をタイプキャストすると、必要な文字列のリストが得られます。

3. 文字列のリストからリストのリストへ

ここでは、上記の2つの方法を組み合わせて、文字列を文字リストのリストに変換する方法について説明します。

以下の例をよく見てください。

#string with integers sepated by spaces
string1="1 2 3 4 5 6 7 8"
print("Actual String containing integers: ",string1)
print("Type of string: ",type(string1))
 
#coverting the string into list of strings
list1=list(string1.split())
print("Converted string to list : ",list1)
 
#typecasting the individual elements of the string list into integer using the map() method
list2=list(map(int,list1))
print("List of integers : ",list2)

を出力してください。

String To List in Python
String To List Of Strings

コードを理解する

  • この例では、文字列 string1 を初期化した後、最初のメソッドを用いて文字列のリストに変換しています。
  • このとき、string1 は [ 'This', 'is', 'Python' ] で与えられる文字列のリストであることがわかります。
  • 次に、リストのすべての要素に list() メソッドを適用します。
  • string1. 前のケースで見たように、これによって文字リストからなるリストが得られます。なお、大量の型キャストは map() 関数を使って行われました。

4. CSVからリストへの変換

CSV( Comma Separated Values ) 文字列は、その名前が示すように、カンマで区切られた値やデータで構成される文字列です。

このような文字列をPythonでどのようにリストに変換するかを見てみましょう。

String To List Of Characters
String To List Of Characters

結果は以下の通りです。

String To List Of Character Lists
String To List Of Character Lists

ここで

  • 同様に、カンマ(‘,’)で区切られた様々なデータや値を持つ文字列 string1 を考えることから始めます。
  • 文字列とその type() を表示した後、パラメータ ‘,’ に基づいてそれを分割することで処理を進めます。
  • これにより、’abc’, ‘def’, ‘ghi’という値がリストの要素になります。このようにして、実際に与えられたCSVから値を抽出することができた

5. 整数からなる文字列を整数のリストに変換する

今度は、スペースやカンマなどで区切られた整数値のみからなる文字列を、整数型の要素を持つリストに変換してみます。

たとえば,次のようなコードを見てみよう.

CSV To List
CSV To List

結果を出力すると、以下の様になります。

String With Integers To List
String With Integers To List

さて

  • 文字列 string1 を “1 2 3 4 5 6 7 8” とし、その文字列と型()を連続的に表示します。
  • 次に、split() メソッドで分割し、その結果をリスト list1 に格納します。この時点で、list1には [ ‘1’, ‘2’ , ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’ ] が格納されていることが出力から確認できます、期待通りです。
  • ここで,関数 int() をリスト全体にマップし,各要素を整数に型変換しています.さらに,型変換されたリストを list2 に格納し,同じものを表示します.
  • その結果,整数の要素からなるリストが得られ,このリストに対して算術演算を行うことができます.

まとめ

以上、文字列をさまざまな方法でリストに変換する方法について説明しました。

自分のコードに合うもの、自分の目的を達成できるもの、自分の要求を満たせるものを使ってみてください。

ご質問はコメントでお願いします。


タイトルとURLをコピーしました