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()関数を使ってシーケンスの要素数を取得することもできます。

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です