Different Ways to Creating a dictionary in Python
ü Dictionary consists of key-value pairs. It is enclosed by curly braces {}.
ü A dictionary can be created by enclosing item, separated by commas, in curly braces {} Where item is nothing item is a key-value pair and the key and the value is separated by a colon (:). This pair is known as item. Items are separated from each other by a comma (,).
ü
keys must be of an immutable data type
such as strings, numbers, or tuples.
§ We can
create empty dictionary object as follows.
d={}
print(d)
print(type(d))
# The Output Will be
{}
We can create dictionary object with some element If we know data in
d={"name":"john","age":20,"country":"India"}
print(d)
print(type(d))
# The Output Will be
{'name': 'john', 'age': 20, 'country': 'India'}
<class
'dict'>
§ We can
create dictionary object with dynamic some element as follows.
d=eval(input("Enter dictionary :"))
print(d)
print(type(d))
# The Output Will be
Enter Dictionary:{101:'sachin',102:'Vijay',103:'Ajay'}
{101: 'sachin', 102: 'Vijay', 103: 'Ajay'}
<class 'dict'>
§ We can
create dictionary object using built-in class: dict() as follows.
§ The dict() constructor can be used to create
dictionaries from keyword arguments, or from a single iterable of key-value
pairs, or from a single dictionary and keyword arguments
d = dict()
print(d)
print(type(d))
# The Output Will be
{}
<class
'dict'>
d =
dict(a=1, b=2, c=3)
print(d)
Output:
{'a': 1,
'b': 2, 'c': 3}
d=dict([('a', 1), ('b', 2), ('c', 3)])
print(d)
Output:
{'a': 1,
'b': 2, 'c': 3}
d=dict({'a' : 1, 'b' : 2},
c=3)
print(d)
Output:
{'a': 1,
'b': 2, 'c': 3}
§ We can
create dictionary object using Python Dictionary fromKeys() inbuilt function as
follows.
§ Python Dictionary fromKeys() is an inbuilt function
that creates a new dictionary from the given sequence of elements .
dictionary.fromkeys(keys, value)
§ This Method takes two parameter first parameter is
key that is required parameter.and it is an iterable specifying the keys of the
new dictionary.
§ The Second parameter is value parameter that is
optional and the value for all keys. The default value is None.
§ Python fromkeys() method returns a new dictionary
with a given sequence of elements as the keys of the dictionary.
employees = ['Scott', 'Mark', 'John']
defaults = {'Application Developer', 1000}
resDict = dict.fromkeys(employees, defaults)
print(resDict)
Output:
{
'Scott': {1000, 'Application Developer'}, '
Mark': {1000, 'Application Developer'}, '
John': {1000, 'Application Developer'}
How to access Element
from the dictionary
§ The elements of a dictionary can be accessed via a
key.
d= {101: 'sachin', 102: 'Vijay', 103: 'Ajay'}
print(d[101])#The OutPut:sachin
print(d[102])#The OutPut:Vijay
print(d[103])#The OutPut:Ajay
If the specified key is not available then we
will get KeyError.
print(d[104])
KeyError: 104
How We can Avoid KeyError Exceptions
§ One
common pitfall when using dictionaries is to access a non-existent key. This
typically results in a KeyError
exception.
§ One
way to avoid key errors is to use the dict.get method, which allows you to specify a
default value to return in the case of an absent key.
value = mydict.get(key, default_value)
§ Which
returns mydict[key] if it exists, but otherwise returns default_value. Note
that this doesn't add key to mydict.
d={101: 'sachin', 102: 'Vijay', 103: 'Ajay'}
print(d[101])#The
OutPut:sachin
print(d[102])#The
OutPut:Vijay
print(d[103])#The
OutPut:Ajay
print(d.get(104,'Hello'))#The OutPut:Hello
§ In
the given example 104 key is not exist if we try to fetch element by using 104
key then we get default value hello because 104 is not key of this given dict.
this doesn't add key to dict.
§ if
you want to retain that key value pair, you should use mydict.setdefault(key,
default_value), which does store the key value pair.
d={101: 'sachin', 102: 'Vijay', 103: 'Ajay'}
print(d[101])#The OutPut:sachin
print(d[102])#The OutPut:Vijay
print(d[103])#The OutPut:Ajay
print(d.setdefault(104,'Hello'))#The
OutPut:Hello
print(d)
Output:
sachin
Vijay
Ajay
Hello
{101: 'sachin', 102: 'Vijay', 103: 'Ajay', 104: 'Hello'}
§ An
alternative way to deal with the problem.
§ You
could also check if the key is in the dictionary.
if key in mydict:
value = mydict[key]
else:
value = default_value
How to
Check that given key or given value exists in a dictionary or not
# Create first
dictionary
d1={'a':1,'b':2,'c':3}
#Check given key
exists in a dictionary
print('a' in d1)#The
Output:True
#Another Way Check
given key exists in a dictionary
print('a' in
d1.keys())#The Output:True
#Check given Value
exists in a dictionary
print(2 in
d1.values())#The Output:True
Iterating over a Dictionary
§ You
can iterate over the dictionary elements using for loop like below:
for element in dictionary:
do operation
d = {'a': 1, 'b': 2, 'c':3}
for key in d:
print(key,
d[key])
Output:
a 1
b 2
c 3