サイトロゴ
リストとタプル
リストとは
・複数の要素を順番に並べて利用するためのデータ型です。
・ネストすることも可能です。
・インデックスを使用し操作可能です。
・要素を追加/削除可能です。
タプルとは
リストと同様に複数の要素を順番に並べて利用するためのデータ型です。
定義後、要素の追加/変更は不可です。
(タプルは不変性を持つことに特徴がになります。)
タプルとリストの違い
タプル データの追加や削除できません。
ただし、連結は可能になります。
リスト データの追加や削除できます。

※使い分けのコツ!!
オブジェクトのリストを使いたいのだけど、
プログラム中で変更されることを望まない場合にタプルを使用します。(基本はリスト)
双方向変換(タプル→リスト、リスト→タプル)
タプル、リストともにそれぞれ変換が可能です。
変換方法は下記の通りになります。
≪リストからタプルへ変換≫
						li = ['A', 'C', 'G', 'T']
						tuple(li)
  					
≪タプルからリストへ変換≫
						tp = ('A', 'C', 'G', 'T')
						list(tp)
  					
リストの操作
≪リストから取得する≫
						arr = ['ACCG', 'CAAT', 'GTAA', 'TTGG']
						print(arr[i])
  					
≪リストに追加する≫

リストに要素を追加するとき、append または extend メソッドを利用します。
他のプログラミング言語のように unshift と push も利用できます。

『append』・・・リストの最後に、オブジェクトを追加します。
						arr_1 = ['AAA', 'CCC']
						arr_2 = ['GGG', 'TTT']
						arr_1.append(arr_2)
  					
≪リストから削除する≫

リストの要素を削除するとき del または remove を利用します。
リストの要素を削除して、削除した要素を受け取るには pop を利用します。
del 添字を利用してリストの要素を削除します。
remove 要素の値を利用してリストの要素を削除します。
pop リストの先頭、後尾あるいは任意の位置から要素を削除し、それを取得します。

〈添字を利用してリストの要素を削除する〉
						arr = ['A', 'C', 'G', 'T']
						del arr[2]
						print(arr) 
  					
〈要素の値を利用してリストの要素を削除する〉
						arr = ['A', 'C', 'G', 'T']
						arr.remove('C')
						print(arr)
  					
〈リストの後尾から要素を削除し、それを取得する〉
						arr = ['A', 'C', 'G', 'T']
						ele = arr.pop()
						print(ele)
  					
〈リストの先頭から要素を削除し、それを取得する〉
						arr = ['A', 'C', 'G', 'T']
						ele = arr.pop(0)
						print(ele)
  					
≪リストを検索する≫ リスト要素の値を検索する場合、 index を利用します。
(検索値の出現位置を返却)
指定した値がリスト中に何個含まれるかを数える場合、 count を利用します。

〈リストの先頭から値を検索〉
						arr = ['A', 'C', 'G', 'T', 'A']
						i = arr.index('A')
						print(i)
  					
出力結果
						0
					
〈リストの3番目(添字2)から値を検索〉
						arr = ['A', 'C', 'G', 'T', 'A']
						i = arr.index('A', 2)
						print(i)
  					
出力結果
						4
					
〈指定した値がリスト中に何個含まれるかを数える〉
						arr = ['A', 'C', 'G', 'T', 'A']
						i = arr.count('A')
					    print(i)
  					
出力結果
						2
					
スライス
リストでも文字列と同じくスライスを使うことが出来ます。
(スライス:オブジェクトの中の指定した範囲の要素を持つ新しいオブジェクトを作成返却すること)

リストオブジェクトに対しスライスを使って部分リストを取得するには次の書式を使います。

リストオブジェクト[開始インデックス:終了インデックス]
						list = ["A", "B", "C", "D", "E"]

						slice1 = list[1:2]     # ["B"]
						slice2 = list[1:-1]    # ["B", "C", "D"]
						slice3 = list[1:]      # ["B", "C", "D", "E"]
						slice4 = list[:2]      # ["A", "B"]
						slice5 = list[:]       # ["A", "B", "C", "D", "E"]
  					
スライスを使って取得したオブジェクトもリストオブジェクトとなります。
たとへスライスによって取得した要素の数が1つであっても、要素数が1つのリストオブジェクトとなります。

要素が参照しているオブジェクトを取得したい場合は、インデックスを指定して要素を取得する必要があります。
サイズの取得
サイズを取得するにはlen関数を使用します。
※len関数は、リスト、文字列、タプル、辞書のサイズが取得可能です。

ネストしている場合も、要素は1としてカウントします。

('A', 'B', ('C', 'D'), 'E')

上記のような場合、要素数は4なります。

list = ["A", "B", "C"]
print len(list)