Pythonで辞書のキーや値をシーケンスに変換する
dict.keys()
メソッドやdict.values()
メソッドを使用して取得した値は、通常は辞書(dict
)のビューオブジェクトとして返されます。ビューオブジェクトは順序を指定してアクセスできないため、次のコードは動作しません。
dic = { "1": 0, "2": 1, "5": 2}
keys = dic.keys()
print(keys[0])
上記の場合、次のように例外が発生します。
Traceback (most recent call last):
File "test.py", line 18, in <module>
print(keys[0])
TypeError: 'dict_keys' object is not subscriptable
ビューオブジェクトをシーケンスに変換するには次のように、list()
メソッドを使用してリストに変換します。
dic = { "1": 0, "2": 1, "5": 2}
keys = list(dic.keys())
print(keys[0]) # 1
Pythonのシーケンスについて
Pythonにおいて、シーケンス(Sequence)とは、複数の要素を順番に並べたデータ構造を指します。シーケンスはインデックスを使用して個々の要素にアクセスすることができ、順序が保持される特徴を持っています。
また、len()
関数を使ってシーケンスの要素数を取得することもできます。