2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

python入門(5)~タプルと辞書~

Last updated at Posted at 2019-02-14

#タプルと辞書
##タプル
タプルとはデータ型の一つで,リストと似ていますが,要素の追加,削除,変更は行えません.またタプルは,「,」で区切ります.「()」は無くても作れますが基本は「()」で囲みます.なお,タプル同士を繋げて新しいタプルを作ることはできます.

tap.py
a = ('s', 'w', 'i', 't', 'c', 'h')
print(a)
b = (1, 2)
c = b + a
print(c)
実行結果
('s', 'w', 'i', 't', 'c', 'h')
(1, 2, 's', 'w', 'i', 't', 'c', 'h')

##辞書
辞書とはデータ型の一つでリストと似ていますが,各要素を値とキーのペアで扱い,それらを「,」で区切って「{}」で囲みます.また,リストと違い順番はありません.ちなみにキーは,文字列だけでなく数値やタプルを使うこともできます.

dic.py
a = {'日本':4, 'アメリカ':1, 'ニュージーランド':8}#海洋の体積
val = a['日本']
b = {('日本', 4):6,('アメリカ', 1):1,('ニュージーランド', 8):7}#海洋の面積
val2 = b[('ニュージーランド', 8)]
print(val, val2)
print(a)
実行結果
4 7
{'アメリカ': 1, 'ニュージーランド': 8, '日本': 4}

辞書の基本の書き方は上記の通りです.注意すべき点は要素にアクセスするときは「{}」ではなく「[]」を使うところです.また,存在しないキーにアクセスしようとするとエラーが出ます.
余談ですが,上記のデータは「世界の領海およびEEZの体積と面積ランキング」の一部です.
####inまたはnot in演算子
inまたはnot in演算子を使うとキーがあるのかを調べられます.

dic2.py
a = {'日本':4, 'アメリカ':1, 'ニュージーランド':8}#海洋の体積
con1 = '日本' in a
con2 = '日本' not in a
con3 = 'イギリス' in a
print(con1, con2, con3)
実行結果
True False False

####get()メソッド
get()メソッドを用いると指定したキーが存在するとその値を,指定したキーが存在しない場合はNoneが返されます.

dic3.py
a = {'日本':4, 'アメリカ':1, 'ニュージーランド':8}#海洋の体積
g1 = a.get('日本')
g2 = a.get('イギリス')
print(g1, g2)
実行結果
4 None

####dict()
dict()を使い直接辞書を作ったり,リストやタプルを辞書に変換できます.なおこの場合は,文字列でも「'」をつけません.

dic4.py
a = dict(日本 = 4, アメリカ = 1, ニュージーランド = 8)
print(a)
実行結果
{'日本': 4, 'アメリカ': 1, 'ニュージーランド': 8}

#####zip()
zip()を使ってキーのリストと値のリストを合成して辞書を作ることができます.

dic5.py
key = ['日本', 'アメリカ', 'ニュージーランド']
value = [4, 1, 8]
di = dict(zip(key, value))
print(di)
実行結果
{'ニュージーランド': 8, '日本': 4, 'アメリカ': 1}

#####タプルのリストを利用する

dic6.py
a = dict( [('日本',4), ('アメリカ',1), ('ニュージーランド',8)] )
print(a)
実行結果
{'ニュージーランド': 8, '日本': 4, 'アメリカ': 1}

##辞書の操作
###要素の追加
辞書の要素の追加の方法は直接定義する方法とsetdefault()を使う方法の二種類あります.

dic7.py
a = {'大化の改新' : 645}
a['関ヶ原の戦い'] = 1600
print(a)
a.setdefault('日清戦争', 1894)
print(a)
実行結果
{'大化の改新': 645, '関ヶ原の戦い': 1600}
{'大化の改新': 645, '日清戦争': 1894, '関ヶ原の戦い': 1600}

###要素の削除
辞書の要素を削除する方法はdel文とpop()の二つの方法があります.また,要素全てを削除したいときはclear()を使います.

dic8.py
a = {'大化の改新' : 645, '日清戦争' : 1894, '関ヶ原の戦い' : 1600}
del a['日清戦争']
print(a)
a.pop('関ヶ原の戦い')
print(a)
a.clear()
print(a)
実行結果
{'関ヶ原の戦い': 1600, '大化の改新': 645}
{'大化の改新': 645}
{}

##リストへの変換
###キーのリストを作る
キーの取得にはkeys()を使います.

key1.py
a = {'' : '','' : '', 'バッタ' : ''}
key = list(a.keys())
print(key)
実行結果
['バッタ', '鷹', '虎']

###値のリストを作る
値の取得にはvalues()を使います.

val.py
a = {'' : '','' : '', 'バッタ' : ''}
value = list(a.values())
print(value)
実行結果
['黄', '緑', '赤']

###要素のリストを作る
要素の取得にはitems()を使います.

item.py
a = {'' : '','' : '', 'バッタ' : ''}
item = list(a.items())
print(item)
実行結果
[('鷹', '赤'), ('虎', '黄'), ('バッタ', '緑')]

##最後に
pythonは様々な場面で使われています.自分が何を作りたいかをイメージしながら学んでいきましょう.

2
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?