23
22

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の辞書型を使ってみる

Last updated at Posted at 2018-07-28

環境

Python 3.6.5 :: Anaconda, Inc.

$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

このようにインタープリタを起動する。
注意!コードに含まれる「>>>」や「...」はインタープリタの表示を再現しているものなので、SublimeText、VSCode、Pycharmなどのテキストエディタでコードを書く場合は省略可能。

辞書型の基礎

辞書を作る

>>> d = {'x': 10, 'y': 20}
>>> d
{'x': 10, 'y': 20}
>>> type(d)
<class 'dict'>

このような形式でキーと値を入力し、Pythonでは辞書を作ることができる。
typeで調べたところ'dict'と出力されるが、これがdictionaryすなわち辞書のこと。

辞書中の特定の値を出力する

>>> d = {'x': 10, 'y': 20}
>>> d
{'x': 10, 'y': 20}
>>> d['x']
10
>>> d['y']
20

インデックス番号ではなくキーを指定してあげることで、対応する値を出力することができる。

辞書中の特定の値を書き換える

>>> d = {'x': 10, 'y': 20}
>>> d
{'x': 10, 'y': 20}
>>> d['x'] = 100
>>> d['x']
100
>>> d['x'] = 'Bob'
>>> d
{'x': 'Bob', 'y': 20}

キーを指定した上で値を入れてあげれば書き換わる。もちろん、文字列で書き換えることも可能。

辞書に新たなキーと値を追加する

>>> d
{'x': 'Bob', 'y': 20}
>>> d['z'] = 300
>>> d
{'x': 'Bob', 'y': 20, 'z': 300}

辞書に存在しないキーを指定して値を入力してあげることで、辞書に新たなキーと値を追加することができる。
また、dに今存在しているキーは全て文字列だが、下記のように数字をキーにすることも出来る。

>>> d
{'x': 'Bob', 'y': 20, 'z': 300}
>>> d[1] = 400
>>> d
{'x': 'Bob', 'y': 20, 'z': 300, 1: 400}

辞書の作り方(別ルート)

冒頭で紹介した以外にも、下記のような書き方で辞書を作ることも出来る。

>>> dict(a=10, b=20)
{'a': 10, 'b': 20}
>>> dict([('a', 10), ('b', 20)])
{'a': 10, 'b': 20}

辞書型のメソッド

まずは辞書を作る。

>>> d = {'a': 10, 'b': 20}
>>> d
{'a': 10, 'b': 20}

辞書型のメソッドは下記のようにhelpを使うことで一覧を見ることが出来る。

>>> help(d)

Help on dict object:

class dict(object)
 |  dict() -> new empty dictionary
 |  dict(mapping) -> new dictionary initialized from a mapping object's
 |      (key, value) pairs
 |  dict(iterable) -> new dictionary initialized as if via:
 |      d = {}
 |      for k, v in iterable:
 |          d[k] = v
 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
 |      in the keyword argument list.  For example:  dict(one=1, two=2)
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      True if D has a key k, else False.
 |  
 |  __delitem__(self, key, /)
 |      Delete self[key].
 |  
 |  __eq__(self, value, /)
 |      Return self==value.

...

 |  update(...)
 |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
 |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
 |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
 |      In either case, this is followed by: for k in F:  D[k] = F[k]
 |  
 |  values(...)
 |      D.values() -> an object providing a view on D's values
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __hash__ = None
(END)

keysでキーのみ出力する

>>> d.keys()
dict_keys(['a', 'b'])

valuesで値のみ出力する

>>> d.values()
dict_values([10, 20])

updateを使って辞書を他の辞書で拡張する

>>> d
{'x': 10, 'y': 20}
>>> d2 = {'x': 1000, 'j':500}
>>> d2
{'x': 1000, 'j': 500}
>>> d.update(d2)
>>> d
{'x': 1000, 'y': 20, 'j': 500}

すでに存在しているキーの値は上書きされ、存在していないキーは値とともに辞書に追加される。

23
22
1

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
23
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?