5. 便利な組み込み型¶

tuple¶

In [1]:
# サイズ3のtuple
(1, 2, 3)
Out[1]:
(1, 2, 3)
In [2]:
# 空のtuple
()
Out[2]:
()
In [3]:
# tupleを作る
a = ('this', 'is', 'tuple') 

# 任意のPythonオブジェクトが要素となれる
(1, 'string', a) 
Out[3]:
(1, 'string', ('this', 'is', 'tuple'))
In [4]:
# 最初の要素にアクセス
a[0]
Out[4]:
'this'
In [5]:
# try-exceptはエラーを出さないための処理なので無視してよい
try:
    # 代入(値の更新)はできない
    a[0] = 'that'
except Exception as e:
    import traceback
    print(traceback.format_exc())
Traceback (most recent call last):
  File "/var/folders/91/5lnzpx8103j7phv4v4wyn89w0000gn/T/ipykernel_43287/2664072323.py", line 4, in <module>
    a[0] = 'that'
TypeError: 'tuple' object does not support item assignment

In [6]:
# 関数の返値がtuple
def test_tuple(a, b):
    return a+b, a-b
In [7]:
# 関数の返値を確認
test_tuple(1, 2)
Out[7]:
(3, -1)
In [8]:
# 返値はサイズ2のtupleなので,それぞれを別の変数に代入
c, d = test_tuple(20, 10)
In [9]:
c
Out[9]:
30
In [10]:
d
Out[10]:
10

list¶

In [11]:
# 空のlist
[]
Out[11]:
[]
In [12]:
# listも任意のPythonオブジェクトを要素とする
a = ['this', 'is', 'list']
[1, 'string', a]
Out[12]:
[1, 'string', ['this', 'is', 'list']]
In [13]:
# 最初の要素にアクセス
a[0]
Out[13]:
'this'
In [14]:
# listは値の書き換えが可能
a[0] = 'that'
a
Out[14]:
['that', 'is', 'list']
In [15]:
# appendで要素を追加
a = [1, 2, 3]
a.append(4)
a
Out[15]:
[1, 2, 3, 4]
In [16]:
# insertで要素を挿入
a.insert(1, 100)
a
Out[16]:
[1, 100, 2, 3, 4]
In [17]:
# removeで要素を削除
a.remove(100)
a
Out[17]:
[1, 2, 3, 4]
In [18]:
# 最後の要素を返す
a.pop()
Out[18]:
4
In [19]:
# popによってサイズが縮小
a
Out[19]:
[1, 2, 3]
In [20]:
# extendで別のlistの全ての要素を追加
a.extend([10, 11, 12])
a
Out[20]:
[1, 2, 3, 10, 11, 12]
In [21]:
# 空にする
a.clear()
a
Out[21]:
[]
In [22]:
# tupleをlistに変換
list((3, 4, 5))
Out[22]:
[3, 4, 5]
In [23]:
# 0で初期化されたサイズ10のlist
[0]*10
Out[23]:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
In [24]:
# 内包表記でlistを生成
[i**2 for i in range(5)]
Out[24]:
[0, 1, 4, 9, 16]

range¶

In [25]:
# listに変換
list(range(5))
Out[25]:
[0, 1, 2, 3, 4]
In [26]:
# tupleに変換
tuple(range(5))
Out[26]:
(0, 1, 2, 3, 4)

dict¶

In [27]:
# 陽にキーと値のペアを与えてdictを生成
a = {'key1' : 'value1', 'key2' : 'value2', 'key3' : 'value3'}
a
Out[27]:
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
In [28]:
# これでも同じ
b = dict(key1='value1', key2='value2', key3='value3')
b
Out[28]:
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
In [29]:
# キーを指定して値にアクセス
a['key3']
Out[29]:
'value3'
In [30]:
# キーを指定して値を更新
a['key1'] = 'hoge'
a
Out[30]:
{'key1': 'hoge', 'key2': 'value2', 'key3': 'value3'}
In [31]:
# 存在しないキーを指定すると新たなキーと値を追加
a['key0'] = 'value0'
a
Out[31]:
{'key1': 'hoge', 'key2': 'value2', 'key3': 'value3', 'key0': 'value0'}
In [32]:
# キーと値を削除
del a['key1']
a
Out[32]:
{'key2': 'value2', 'key3': 'value3', 'key0': 'value0'}
In [33]:
# try-exceptはエラーを出さないための処理なので無視してよい
try:
    # 存在しないキーを指定するとエラー
    a['key1']
except Exception as e:
    import traceback
    print(traceback.format_exc())
Traceback (most recent call last):
  File "/var/folders/91/5lnzpx8103j7phv4v4wyn89w0000gn/T/ipykernel_43287/3302125977.py", line 4, in <module>
    a['key1']
KeyError: 'key1'

In [34]:
# 'key1' が存在するかチェック
'key1' in a
Out[34]:
False
In [35]:
# 'key2' が存在するかチェック
'key2' in a
Out[35]:
True
In [36]:
# 'key1'にアクセス.存在しない場合は'hoge'を返す
a.get('key1', 'hoge')
Out[36]:
'hoge'
In [37]:
# 'key2'にアクセス.存在しない場合は'hoge'を返す
a.get('key2', 'hoge')
Out[37]:
'value2'
In [38]:
# キー
a.keys()
Out[38]:
dict_keys(['key2', 'key3', 'key0'])
In [39]:
# 値
a.values()
Out[39]:
dict_values(['value2', 'value3', 'value0'])
In [40]:
# キーと値のペア
a.items()
Out[40]:
dict_items([('key2', 'value2'), ('key3', 'value3'), ('key0', 'value0')])
In [41]:
# dictの全ての要素に対する処理
for key, val in a.items():
    print("key = {:5s} : value = {:5s}".format(key, val))
key = key2  : value = value2
key = key3  : value = value3
key = key0  : value = value0
In [42]:
# 同様に全てのキーに対する処理
for key in a.keys():
    print(key)
key2
key3
key0
In [43]:
# .keys()で返されるオブジェクトをlistに変換
keys = list(a.keys())
keys
Out[43]:
['key2', 'key3', 'key0']
In [44]:
# listをソート
keys.sort()
keys
Out[44]:
['key0', 'key2', 'key3']
In [45]:
# ソートしたキーで順にアクセスする
for key in keys:
    print("key = {:5s} : value = {:5s}".format(key, a[key]))
key = key0  : value = value0
key = key2  : value = value2
key = key3  : value = value3
In [ ]: