DICTIONARIES
DICTIONARIES
KEY-VALUE PAIR
What is Dictionary
It is another collection in Python but with different
in way of storing and accessing. Other collection
like list, tuple, string are having an index
associated with every element but Python
Dictionary have a “key” associated with every
element. That's why python dictionaries are known
as KEY:VALUE pairs.
Like with English dictionary we search any word
for meaning associated with it, similarly in Python
we search for “key” to get its associated value
rather than searching for an index.
Creating a Dictionary
Syntax to create dictionary:
dictionary_name = {key1:value,key2:value,….}
Example
>>> emp = {"empno":1,"name":"Shahrukh","fee":1500000}
Here Keys are : “empno”, “name” and “fee”
Values are: 1, “Shahrukh”, 1500000
Note:
1) Dictionary elements must be between curly brackets
2) Each value must be paired with key element
3) Each key-value pair must be separated by comma(,)
Creating a dictionary
Dict1 = {} # empty dictionary
DaysInMonth={"Jan":31,"Feb":28,"Mar":31,"Apr":31
"May":31,"Jun":30,"Jul":31,"Aug":31
"Sep":30,"Oct":31,"Nov":30,"Dec":31}
Note: Keys of dictionary must of immutable type such as:
- A python string
- A number
error
- >>>dict2 = {[2,3]:"abc”} #Error
Accessing elements of Dictionary
To access Dictionary elements we need the “key”
>>>mydict={'empno':1,'name':'Shivam','dept':'sales','salary':25000}
>>> mydict['salary']
25000
Note: if you try to
access “key” which is
not in the dictionary,
python will raise an
error
>>>mydict["comm"]
#Error
Traversing a Dictionary
Python allows to apply “for” loop to traverse every
element of dictionary based on their “key”. For loop
will get every key of dictionary and we can access every
element based on their key.
mydict={'empno':1,'name':'Shivam','dept':'sales','salary':25000} for
key in mydict:
print(key,'=',mydict[key])
Accessing keys and values simultaneously
>>> mydict={'empno':1,'name':'Shivam','dept':'sales','salary':25000}
>>>mydict.keys()
dict_keys(['empno', 'name', 'dept', 'salary'])
>>>mydict.values()
dict_values([1, 'Shivam', 'sales', 25000])
We can convert the sequence returned by keys() and values() by using list() as
shown below:
>>> list(mydict.keys())
['empno', 'name', 'dept', 'salary']
>>> list(mydict.values())
[1, 'Shivam', 'sales', 25000]
Characteristics of a Dictionary
Unordered set
A dictionary is a unordered set of key:value pair
Not a sequence
Unlike a string, tuple, and list, a dictionary is not a
sequence because it is unordered set of elements. The
sequences are indexed by a range of ordinal numbers.
Hence they are ordered but a dictionary is an unordered
collection
Indexed by Keys, Not Numbers
Dictionaries are indexed by keys. Keys are immutable
type
Characteristics of a Dictionary
Keys must be unique
Each key within dictionary must be unique. However two unique
keys can have same values.
>>> data={1:100, 2:200,3:300,4:200}
Mutable
Like lists, dictionary are also mutable. We can change the value of a
certain “key” in place
Data[3]=400
>>>Data
So, to change value of dictionary the format is :
DictionaryName[“key” / key ]=new_value
You can not only change but you can add new key:value pair :
Internally stored as Mappings
Internally, the key:value pair are associated with one
another with some internal function(called hash function).
This way of linking is called mapping
Given value is
assigned to each key
List is assigned to
each key, as the list
updated dictionary
key values are
automatically
updated
Dictionary functions and methods
copy() : as the name suggest, it will create a copy of dictionary.