リスト タプル 集合

複数個の値を保存するデータ型にはリスト、タプルと集合がある。リストは、データの追加や削除などの操作が行える。これに対し、タプルはデータの追加や削除が行えない。一方、集合は数学の集合と同じ性質を持ち、同じ値のデータが複数個代入しても一つしか残らない。

リスト

リストの作成

リストには複数のデータを代入することができる。代入されたデータは 1、2、3、・・・のように添字が付けられる。リストを一度作成すると、あとから要素の追加や削除、変更などが行える。


# リストを作成
arr = ['ACCG', 'CAAT', 'GTAA', 'TTGG']

print(arr[0])         # 1 番目の要素
## 'ACCG'

print(arr[1])         # 2 番目の要素
## 'CAAT'

print(arr[-1])        # 後ろから 1 番目の要素
## 'TTGG'

print(arr[1:3])
## ['CAAT', 'GTAA']   #  [0'ACCG'1'CAAT'2'GTAA'3'TTGG'4] のようになっているから、1:3 は CAAT と GTAA になる

print(len(arr))       # リストの要素数
## 4

for 文によるリスト要素の取得

リストにあるすべての要素を取得するとき、for 文を利用する。

arr = ['ACCG', 'CAAT', 'GTAA', 'TTGG']


for i in arr:
    print(i)

## 出力結果
## ACCG
## CAAT
## GTAA
## TTGG


for in range(0, len(arr)):
    print(i)
    print(arr[i])

## 出力結果
## 0
## ACCG
## 1
## CAAT
## 2
## GTAA
## 3
## TTGG

リストの要素の追加

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

append リストの最後に、オブジェクトを追加する
extend リストの最後に、オブジェクトを展開して追加する
arr_1 = ['AAA', 'CCC']
arr_2 = ['GGG', 'TTT']

arr_1.append(arr_2)
print(arr_1)    
## ['AAA', 'CCC', ['GGG', 'TTT']]


arr_1 = ['AAA', 'CCC']
arr_2 = ['GGG', 'TTT']

arr_1.extend(arr_2)
print(arr_1)
## ['AAA', 'CCC', 'GGG', 'TTT']

リストの要素の削除

リストの要素を削除するとき del または remove を利用する。リストの要素を削除して、削除した要素を受け取るには pop を利用する。

del 添字を利用してリストの要素を削除する
remove 要素の値を利用してリストの要素を削除する
pop リストの先頭、後尾あるいは任意の位置から要素を削除し、それを取得する
arr = ['A', 'C', 'G', 'T']
del arr[2]
print(arr) 
## ['A', 'C', 'T']


arr = ['A', 'C', 'G', 'T']
arr.remove('C')
print(arr) 
## ['A', 'G', 'T']


arr = ['A', 'C', 'G', 'T']
ele = arr.pop()
print(ele)
## 'T'
print(arr)
## ['A', 'C', 'G']


arr = ['A', 'C', 'G', 'T']
ele = arr.pop(0)
print(ele)
## 'A'
print(arr)  
## ['C', 'G', 'T']

リスト要素の検索

リスト要素の値を検索するとき index を利用する。指定した値がリスト中に何個含まれるかを数えるとき count を利用する。

arr = ['A', 'C', 'G', 'T', 'A']

i = arr.index('A')         # 先頭から検索
print(i)
## 0

i = arr.index('A', 2)      # 3 番目の要素から検索
print(i)
## 4

i = arr.count('A')         # 'A' の要素数
print(i)
## 2

タプル

タプルはリストと似ている。ただし、一度作成してしまうと、後から変更できない。

arr = ('A', 'C', 'G', 'T', 'A')

print(arr[1])
## 'C'
 
print(arr[2:4])
## ('G', 'T')

print(len(arr)) 
## 5

print(arr.index('G'))
## 2

print(arr.count('A'))
## 2

タプルとリスト、リストをタプルに変更することができる。

# リストからタプルへ変換
li = ['A', 'C', 'G', 'T']
tuple(li)


# タプルからリストへ変換
tp = ('A', 'C', 'G', 'T')
list(li)

集合

Python の集合は数学の集合に似てる。同じ値の要素が複数含まれると、一つに集約される。

se = {1, 2, 2, 3}

print(se)
## set([1, 2, 3])

print(len(se))
## 3

# 要素の追加
se.update({3, 4, 5})
print(se)
## set([1, 2, 3, 4, 5])

# 要素の削除(集合に存在しない要素を削除しようとするとき何も起こらない)
se.discard(3) 
## set([1, 2, 4, 5])

# 要素の削除(集合に存在しない要素を削除しようとするときエラーになる)
se.remove(2)    
## set([1, 4, 5])