ディクショナリ

ディクショナリはキーと値がセットになって保存されるオブジェクト(変数)型である。例えば GUU を与えると V を出力したり、AUG を与えると M を出力したりするような辞書的な機能を持つ。この場合、GUU と AUG をキーといい、V と M を値という。他のプログラミング言語のハッシュやマップなどに似る。

ディクショナリはキーと値が 1 セットとなるように作成する。


codon = {'UUU' : 'F', 'CUU' : 'L', 'AUU' : 'I'}

print(codon['CUU'])
## 'L'

# 存在しないキーを指定するとエラーが出ます
print(codon['UGU'])
## Traceback (most recent call last):
##   File "", line 1, in 
## KeyError: 'UGU'

ディクショナリを利用する際に、与えたキーが存在しない時にエラーが起きる。そこで、あるキーがそのディクショナリに存在するかどうかをチェックする必要がある。

codon = {'UUU' : 'F', 'CUU' : 'L', 'AUU' : 'I'}


print('UUU' in codon)
## True

print('UGU' in codon)
## False

ディクショナリにキーと値を追加するとき、update を利用する。

dic_1 = {'UUU': 'F', 'UAU': 'Y'}
dic_2 = {'CUU': 'L', 'AUU': 'I'}

dic_1.update(dic_2)
print(dic_1)
## {'UUU': 'F', 'AUU': 'I', 'CUU': 'L', 'UAU': 'Y'}

dic_1['AUG'] = 'M'
print(dic_1)
## {'UUU': 'F', 'AUU': 'I', 'CUU': 'L', 'UAU': 'Y', 'AUG': 'M'}

キーの削除は del または pop を利用する。del はキーと値を削除するだけであるのに対して、pop はキーと値を削除してから、その値を返す。


codon = {'UUU' : 'F', 'CUU' : 'L', 'AUU' : 'I'}

del codon['UUU']
print(codon)
## {'CUU': 'L', 'AUU': 'I'}

c = codon.pop('CUU')
print(c)
## 'L'
print(codon)
## {'AUU': 'I'}

ディクショナリの要素をすべて取得する方法

for 文を利用することで、ディクショナリ中のすべての要素を取り出すことができる。


codon = {'UUU' : 'F', 'CUU' : 'L', 'AUU' : 'I'}

for k, v in codon.items():
    print(k + ":" + v)
## CUU:L
## AUU:I
## UUU:F

for k in codon.keys():
    print(k + ":" + codon[k])
## CUU:L
## AUU:I
## UUU:F

for v in codon.values():
    print(v)
## L
## I
## F

ディクショナリを利用して塩基の出現回数をカウント

DNA は A、C、G、T の 4 種類の塩基の組み合わせからなる。ここで Python のディクショナリを利用して各塩基の出現回数をカウントする例を示す。

dna = 'AACCGGTTACCGGGTTTT'

base_count = {}

for base in list(dna):
    if base in base_count:
        base_count[base] += 1
    else:
        base_count.update({base : 1})

for c in base_count:
    print(c + ': ' + str(base_count[c]))
## C: 4
## G: 5
## T: 6
## A: 3