Python: Dictionary (Key/Value Pair, Hash)

, , …,

In Python, there's a special type of data structure called “dictionary” (aka “keyed list”, “associative array”, “hash table”.). It is a unordered list of pairs, each is a key and a value.

Creating a dictionary. {key1:val1, key2:val2, …}

#-*- coding: utf-8 -*-
# python

# creating a dictionary
hh = {"john":3, "mary":4, "jane":5}
print hh                        # {'jane': 5, 'john': 3, 'mary': 4}

Getting value of a key. dict[key]

#-*- coding: utf-8 -*-
# python

hh = {"john":3, "mary":4, "jane":5}
print hh["mary"]                # 4

Add a entry. dict[key] = value

#-*- coding: utf-8 -*-
# python

hh = {"john":3, "mary":4}

# add a entry
hh["vicky"] = 99
print hh                        # {'john': 3, 'mary': 4, 'vicky': 99}

Delete a entry. del dict[key]

#-*- coding: utf-8 -*-
# python

hh = {"a":3, "b":4, "c":5}

# delete a entry
del hh["b"]
print hh                        # {'a': 3, 'c': 5}

Get all keys. dict.keys()

#-*- coding: utf-8 -*-
# python

hh = {"a":3, "b":4, "c":5}

# get all keys
print hh.keys()                 # ['a', 'c', 'b']

Get all values. dict.values()

#-*- coding: utf-8 -*-
# python

hh = {"a":3, "b":4, "c":5}

# get all values
print hh.values()               # [3, 5, 4]

Check if a key exists. key in dict

#-*- coding: utf-8 -*-
# python

hh = {"a":3, "b":4, "c":5}

# check if a key exists
print "b" in hh           # True
print "d" in hh           # False

What Type Can be Used as Key in Dictionary?

A key in dictionary can be anything that's hashable. Basically, string, tuple, number, or in general python data types that are “immutable”. Glossary — Python v2.7.6 documentation #term-hashable

#-*- coding: utf-8 -*-
# python

# dict key can be anything that's hashable. typically, number, string, tuple. Most things that are “immutable”
hh = {2:3, "b":4, (3,4):5}

print 2 in hh                   # True
print (3,4) in hh               # True

(Thanks to 孙翰菲 for a tip.)

Dictionary Methods

Python: Dictionary Methods

blog comments powered by Disqus