今回はPythonのList of Tuplesを取り上げます。
Pythonのリストとタプルとは?
Pythonのリストは、変更可能なデータ要素の順序付きコレクションを維持するデータ構造です。
list - name = [ item1, item2, ....., itemN]
|
リストの要素は角括弧 [] で囲まれます。
Python Tupleは不変のデータ構造で、その要素は括弧()で囲まれます。
tuple - name = (item1, item2, ...., itemN)
|
Pythonのタプルのリスト
タプルのリストを作ることができます。
タプルの要素はリストで囲むことができるので、Pythonのリストと同じような方法で特徴に従います。
Pythonのタプルはより少ないスペースしか利用しないので、タプルのリストを作成することはあらゆる面でより有用でしょう。
例えば、以下の様になります。
LT_data = [( 1 , 2 , 3 ),( 'S' , 'P' , 'Q' )]
print ( "List of Tuples: ,LT_data)
|
結果は、以下の通りになります。
List of Tuples:
[( 1 , 2 , 3 ), ( 'S' , 'P' , 'Q' )]
|
zip() 関数を使用した Python のタプルのリスト
Pythonのzip()関数は、以下のコマンドでリストをマッピングして、タプルのリストを作成するために使用できます。
list ( zip ( list ))
|
zip() 関数は、渡された値に基づいてタプルのイテラブルを返します。
さらに、list() 関数
は zip() 関数の出力として、これらのタプルのリストを作成します。
例えば、以下の様になります。
lst1 = [ 10 , 20 , 30 ]
lst2 = [ 50 , "Python" , "JournalDev" ]
lst_tuple = list ( zip (lst1,lst2))
print (lst_tuple)
|
結果は以下の通りです。
[( 10 , 50 ), ( 20 , 'Python' ), ( 30 , 'JournalDev' )]
|
タプルのリストを形成する際の要素のグループ化のカスタマイズ
タプルのリストを作成する際に、リスト/タプルに含まれる要素の数に応じてカスタマイズしたグループ化を行うことが可能です。
[element for element in zip ( * [ iter ( list )] * number)]
|
リスト内包と zip() 関数
は、タプルをリストに変換し、タプルのリストを作成するために使用されます。
Python iter()関数`は、オブジェクトの要素を一度に反復処理するために使用されます。
number’ は、1つのタプルにまとめる要素の数を指定し、リストを作成します。
例として以下の様になります。
lst = [ 50 , "Python" , "JournalDev" , 100 ]
lst_tuple = [x for x in zip ( * [ iter (lst)])]
print (lst_tuple)
|
上記の例では、iter()メソッドを使って、タプルの中に1つの要素を持つリストを形成しています。
出力は
[( 50 ,), ( 'Python' ,), ( 'JournalDev' ,), ( 100 ,)]
|
例2:
lst = [ 50 , "Python" , "JournalDev" , 100 ]
lst_tuple = [x for x in zip ( * [ iter (lst)] * 2 )]
print (lst_tuple)
|
この例では、2つの要素がタプルの内部に含まれ、タプルのリストを形成している。
出力は以下の通り。
[( 50 , 'Python' ), ( 'JournalDev' , 100 )]
|
Pythonのmap()関数を使ったタプルのリスト
Python の map 関数はタプルのリストを作成するために使うことができます。
map()関数は、関数に渡されたイテラブルに関数をマッピングして適用します。
map (function, iterable)
|
例えば、以下の様になります。
lst = [[ 50 ],[ "Python" ],[ "JournalDev" ],[ 100 ]]
lst_tuple = list ( map ( tuple , lst))
print (lst_tuple)
|
この例では、map() 関数を使って入力リストをタプル関数にマップしています。
この後、list()関数を使用して、マッピングされたタプル値のリストを作成します。
出力しています。
[( 50 ,), ( 'Python' ,), ( 'JournalDev' ,), ( 100 ,)]
|
リスト内包と tuple() メソッドを用いた Python のタプルのリスト
Python の tuple() メソッドはリスト内包と一緒にタプルのリストを作成するために使うことができます。
tuple() 関数は、渡された要素のセットからタプルを作成するのに役立ちます。
例えば、以下の様になります。
lst = [[ 50 ],[ "Python" ],[ "JournalDev" ],[ 100 ]]
lst_tuple = [ tuple (ele) for ele in lst]
print (lst_tuple)
|
結果は、以下の通りになります。
[( 50 ,), ( 'Python' ,), ( 'JournalDev' ,), ( 100 ,)]
|
まとめ
ここまでで、この記事は終わりです。
Pythonのタプルのリストという興味深い概念を楽しんで学んでいただけたでしょうか。
もし何か疑問があれば、お気軽にコメントください。
参考文献
- タプルのリストを作成する – StackOverflow