Python Dictionary

Python Dictionary

In this post, we'll introduce the concept of Python dictionaries, what they are used for, and how to work with dictionaries in your Python code.

A Python dictionary is a sequence of key/value or item pairs separated by commas.

A Python dictionary is created by using curly braces  ({}).

The syntax to create an empty dictionary is:

** = {}**

OR

** = dict()**

The syntax to create a Python dictionary with items is:

** = { key : value , key : value }**

The pair of key and value is called an item, and key and value are separated by a colon (:). Each item is separated by comma  ,), and the whole thing is enclosed in curly braces ({}).

Features of a Python Dictionary
  1. The key of a Python dictionary cannot be changed.
  2. The value of a key can be changed.
  3. The ordering is not significant. The order in which you have entered the items in the dictionary, may not be the same order in which the items are returned.

Features of a Python Dictionary: Key

Keys are unique to the Python dictionary they are used in. We cannot assign the same key twice.

Let's look at an example.

>>> dict1 = {“Mohit” : 1, “Rahul” : 2, “Mohit” : 3}

>>> dict1

{‘Mohit’: 3, ‘Rahul’: 2}

>>>

In the above example, we used the same key, Mohit, two times, although the program is not giving any errors. But, y can see the most recent key replaced the old one.

intfloat, and string can be used as a key. The tuple which does not contain any lists can be used as a key. Let us see the example.

>>> tuple = ()

>>> dict2 = {tuple : “a”}

>>> dict2

{(): ‘a’}

>>> tuple1 = ( [],9 )

>>> dict2 = { tuple1 : “a” }

Traceback (most recent call last):

File “”, line 1, in 

TypeError: unhashable type: ‘list’

>>>

In the example, it is very clear that if a tuple with a list is used then the interpreter will throw an error.

Features of a Python Dictionary: Value

The value can be repeated.

You can store anything in the value.

Y can add and update the value from the dictionary.

Let's create an empty dictionary and add some items.

>>> AV = {}

>>> AV[ ‘IRON-MAN’ ] = “Tony Stark”

>>> AV[ ‘Thor’ ] = “Chris”

>>> AV

{ ‘IRON-MAN’ : ‘Tony Stark’, ‘Thor’ : ‘Chris’ }

>>>

Let us update the values ‘Chris’.

>>> AV[ ‘Thor’ ] = “Chris Hemsworth”

>>> AV

{‘IRON-MAN’ : ‘Tony Stark’, ‘Thor’ : ‘Chris Hemsworth’}

>>>

You have seen we can update the value by using the dictionary’s key.

Accessing the Values of Python Dictionary

Like Python lists, indexing does not exist in Python dictionaries. The values can only be accessed by its key.

Let us take the example of computer network ports.

>>> port1 = { 22: “SSH”, 23 : ‘Telnet’, 80: “HTTP”, 53: “DNS”, 443: “HTTPS” }

>>> port1[22]

‘SSH’

>>> port1[53]

‘DNS’

>>> port1[67]

Traceback (most recent call last):

File “”, line 1, in 

KeyError: 67

You can see if a key does not exist then the interpreter shows an error. In order to tackle this problem, the get() method is used. See the example below.

>>> port1.get(53, “not found” )

‘DNS’

>>> port1.get(67, “not found” )

‘not found’

>>>

Instead of an error, a customized message gets printed.

Different Ways to Check for the Existence of a Key

In this section, we’ll see how to check whether a particular key exists or not.

You have already seen the get() method.

>>> port1.get( 22, “Key not found”)

‘SSH’

>>> port1.get( 24, “Key not found”)

‘Key not found’

>>>

Has_key()

The has_key() method returns True and False statements.

>>> port1.has_key(22)

True

>>> port1.has_key(24)

False

>>>

By Using in Operator

>>> if 22 in port1:

…     print “Key found”

…

Key found

>>>

Delete Elements of a Python Dictionary

You can delete a single element of the dictionary as well the entire dictionary.

Example

>>> port1 = {22: “SSH”, 23 : ‘Telnet’,80: “HTTP”, 53: “DNS”, 443: “HTTPS”}

>>> del port1[22]

>>> port1

{80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’, 23: ‘Telnet’}

>>> del port1

>>> port1

Traceback (most recent call last):

File “”, line 1, in 

NameError: name ‘port1’ is not defined

You can see the error because dictionary named port does exist after command del port1.

Iterating the Python Dictionary Using a for Loop

In order to iterate over the Python dictionary, we used the items() or iteritems() method. The items() method returns a list of tuple pairs. The iteritems() method is the iterator which saves the memory.

In Python 3, the iteritems() method has been removed and the items() method works just like the iteritems() method.

port1 = {22: “SSH”,23:’Telnet’,80: “HTTP”, 53: “DNS”, 443: “HTTPS” }

for k, v in port1.items():

    print k, ” : ” ,v

Output :


Consider you want to update the dictionary with another dictionary

See the example below.

port1 = { 22: “SSH”, 23 : ‘Telnet’,80: “HTTP” }

port2 = { 53: “DNS”, 443: “HTTPS” }

port1.update( port2 )

print port1

Output:

{ 80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’, 22: ‘SSH’, 23: ‘Telnet’ }

So far you have learned about Python dictionary creation, deleting an item, adding an item, and updating items. Let's create a copy of an existing dictionary. In order to make a copy of a dictionary, we will use the copy() method.

>>> port1 = {80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’ }

>>> port2 = port1.copy()

>>> port2

{80: ‘HTTP’, 443: ‘HTTPS’, 53: ‘DNS’}

>>> id(port1)

47341080L

>>> id(port2)

47374680L

>>>

In the above example, a new dictionary, port2 , which is a copy of port1, has been created.

The memory addresses of both the dictionaries are different.

Practical Example

Let us create a dictionary using two lists.

list1 = [1 ,2, 3, 4]

list2 = [ ‘a’, ‘b’, ‘c’, ‘d’ ]

dict1 = { }

for i in xrange( len(list1) ):

    dict1[list1[i]] = list2[i]

print dict1

Output :

{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’}

The same result can be achieved in one line.  See the example below.

list1 = [1 ,2, 3, 4]

list2 = [ ‘a’, ‘b’, ‘c’, ‘d’ ]

print dict(zip(list1,list2))

Output:

{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’}

Thank you for reading !

Python Programming Tutorials For Beginners

Python Programming Tutorials For Beginners

Python Programming Tutorials For Beginners

Description
Hello and welcome to brand new series of wiredwiki. In this series i will teach you guys all you need to know about python. This series is designed for beginners but that doesn't means that i will not talk about the advanced stuff as well.

As you may all know by now that my approach of teaching is very simple and straightforward.In this series i will be talking about the all the things you need to know to jump start you python programming skills. This series is designed for noobs who are totally new to programming, so if you don't know any thing about

programming than this is the way to go guys Here is the links to all the videos that i will upload in this whole series.

In this video i will talk about all the basic introduction you need to know about python, which python version to choose, how to install python, how to get around with the interface, how to code your first program. Than we will talk about operators, expressions, numbers, strings, boo leans, lists, dictionaries, tuples and than inputs in python. With

Lots of exercises and more fun stuff, let's get started.

Download free Exercise files.

Dropbox: https://bit.ly/2AW7FYF

Who is the target audience?

First time Python programmers
Students and Teachers
IT pros who want to learn to code
Aspiring data scientists who want to add Python to their tool arsenal
Basic knowledge
Students should be comfortable working in the PC or Mac operating system
What will you learn
know basic programming concept and skill
build 6 text-based application using python
be able to learn other programming languages
be able to build sophisticated system using python in the future

To know more:

Dictionaries in Python - Learn how to work with Python Dictionaries

Dictionaries in Python - Learn how to work with Python Dictionaries

In this Python Dictionaries tutorial, you will learn how to work with Python Dictionaries, an incredibly helpful built-in data type that you will definitely use during your projects. In this Python dictionaries tutorial you'll cover the basic characteristics and learn how to access and manage dictionary data. Learn everything about Python dictionary; how they are created, accessing, adding and removing elements from them and, various built-in methods.

Welcome

In this article, you will learn how to work with Python Dictionaries, an incredibly helpful built-in data type that you will definitely use during your projects.

In particular, you will learn:

  • What dictionaries are used for and their main characteristics.
  • Why they are important for your programming projects.
  • The "anatomy" of a dictionary: keys, values, and key-value pairs.
  • The specific rules that determine if a value can be a key.
  • How to access, add, modify, and delete key-value pairs.
  • How to check if a key is in a dictionary.
  • What the length of a dictionary represents.
  • How to iterate over dictionaries using for loops.
  • What built-in dictionary methods you can use to leverage the power of this data type.

At the end of this article, we will dive into a simple project to apply your knowledge: we will write a function that creates and returns a dictionary with a particular purpose.

Let's begin! 🔅

🔸 Dictionaries in Context

Let's start by discussing the importance of dictionaries. To illustrate this, let me do a quick comparison with another data type that you are probably familiar with: lists.

When you work with lists in Python, you can access an element using a index, an integer that describes the position of the element in the list. Indices start from zero for the first element and increase by one for every subsequent element in the list. You can see an example right here:

But what if we need to store two related values and keep this "connection" in our code? Right now, we only have single, independent values stored in a list.

Let's say that we want to store names of students and "connect" each name with the grades of each particular student. We want to keep the "connection" between them. How would you do that in Python?

If you use nested lists, things would get very complex and inefficient after adding only a few items because you would need to use two or more indices two access each value, depending on the final list. This is where Python Dictionaries come to the rescue.

Meet Dictionaries

A Python dictionary looks like this (see below). With a dictionary, you can "connect" a value to another value to represent the relationship between them in your code. In this example,"Gino" is "connected" to the integer 15 and the string "Nora" is "connected" to the integer 30.

Let's see the different elements that make a dictionary.

🔹 The "Anatomy" of a Python Dictionary

Since a dictionary "connects" two values, it has two types of elements:

  • Keys: a key is a value used to access another value. Keys are the equivalent of "indices" in strings, lists, and tuples. In dictionaries, to access a value, you use the key, which is a value itself.
  • Values: these are the values that you can access with their corresponding key.

These two elements form what is called a key-value pair (a key with its corresponding value).

Syntax

This is an example of a Python Dictionary mapping the string "Gino" to the number 15 and the string "Nora" to the number 30:

>>> {"Gino": 15, "Nora": 30}

  • To create a dictionary, we use curly brackets { } .
  • Between these curly brackets, we write key-value pairs separated by a comma.
  • For the key-value pairs, we write the key followed by a colon, a space, and the value that corresponds to the key.

💡 Tips:

  • For readability and style purposes, it is recommended to add a space after each comma to separate the key-value pairs.
  • You can create an empty dictionary with an empty pair of curly brackets {}.

Important Rules for Keys

Not every value can be a key in a Python dictionary. Keys have to follow a set of rules:

According to the Python Documentation:

  • Keys have to be unique within one dictionary.

It is best to think of a dictionary as a set of key: value pairs, with the requirement that the keys are unique (within one dictionary).

  • Keys have to be immutable.

Unlike sequences, which are indexed by a range of numbers, dictionaries are indexed by keys, which can be any immutable type; strings and numbers can always be keys.

  • If the key is a tuple, it can only contain strings, numbers or tuples.

Tuples can be used as keys if they contain only strings, numbers, or tuples; if a tuple contains any mutable object either directly or indirectly, it cannot be used as a key.

  • Lists cannot be keys because they are mutable. This is a consequence of the previous rule.

You can’t use lists as keys, since lists can be modified in place using index assignments, slice assignments, or methods like append() and extend().

💡 Note: Values have no specific rules, they can be either mutable or immutable values.

🔸 Dictionaries in Action

Now let's see how we can work with dictionaries in Python. We are going to access, add, modify, and delete key-value pairs.

We will start working with this dictionary, assigned to the ages variable:

>>> ages = {"Gino": 15, "Nora": 30}

Access Values using Keys

If we need to access the value associated with a specific key, we write the name of the variable that references the dictionary followed by square brackets [] and, within square brackets, the key that corresponds to the value:

<variable>[<key>]

This is an example of how we can access the value that corresponds to the string "Gino":

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages["Gino"]
15

Notice that the syntax is very similar to indexing a string, tuple, or list, but now we are using the key as the index instead of an integer.

If we want to access the value that corresponds to "Nora", we would do this:

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages["Nora"]
30

💡 Tip: If you try to access a key that does not exist in the dictionary, you will get a KeyError:

>>> ages = {"Gino": 15, "Nora": 30}
>>> ages["Talina"]
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    ages["Talina"]
KeyError: 'Talina'

Add Key-Value Pairs

If a key-value pair doesn't exist in the dictionary, we can add it. To do this, we write the variable that references the dictionary followed by the key within square brackets, an equal sign, and the new value:

This is an example in IDLE:

>>> ages = {"Gino": 15, "Nora": 30}

# Add the key-value pair "Talina": 24
>>> ages["Talina"] = 24

# The dictionary now has this key-value pair
>>> ages
{'Gino': 15, 'Nora': 30, 'Talina': 24}

Modify a Key-Value Pair

To modify the value associated to a specific key, we use the same syntax that we use to add a new key-value pair, but now we will be assigning the new value to an existing key:

>>> ages = {"Gino": 15, "Nora": 30}

# The key "Gino" already exists in the dictionary, so its associated value
# will be updated to 45.
>>> ages["Gino"] = 45

# The value was updated to 45.
>>> ages
{'Gino': 45, 'Nora': 30}

Deleting a Key-Value Pair

To delete a key-value pair, you would use the del keyword followed by the name of the variable that references the dictionary and, within square brackets [], the key of the key-value pair:

This is an example in IDLE:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}

# Delete the key-value pair "Gino": 15.
>>> del ages["Gino"]

# The key-value pair was deleted.
>>> ages
{'Nora': 30, 'Talina': 45}
🔹 Check if a Key is in a Dictionary

Sometimes, it can be very helpful to check if a key already exists in a dictionary (remember that keys have to be unique).

According to the Python Documentation:

To check whether a single key is in the dictionary, use the in keyword.

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> "Talina" in ages
True
>>> "Gino" in ages
True
>>> "Lulu" in ages
False

The in operator checks the keys, not the values. If we write this:

>>> 15 in ages
False

We are checking if the key 15 is in the dictionary, not the value. This is why the expression evaluates to False.

💡 Tip: You can use the in operator to check if a value is in a dictionary with .values().

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> 30 in ages.values()
True
>>> 10 in ages.values()
False
🔸 Length of a Python Dictionary

The length of a dictionary is the number of key-value pairs it contains. You can check the length of a dictionary with the len() function that we commonly use, just like we check the length of lists, tuples, and strings:

# Two key-value pairs. Length 2.
>>> ages = {"Gino": 15, "Nora": 30}
>>> len(ages)
2

# Three key-value pairs. Length 3.
>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> len(ages)
3
🔹 Iterating over Dictionaries in Python

You can iterate over dictionaries using a for loop. There are various approaches to do this and they are all equally relevant. You should choose the approach that works best for you, depending on what you are trying to accomplish.

First Option - Iterate over the Keys

We can iterate over the keys of a dictionary like this:

for <key> in <dictionary>:
	# Do this

For example:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> for student in ages:
	print(student)

Gino
Nora
Talina

Second Option - Iterate over the Key-Value Pairs

To do this, we need to use the built-in method .items(), which allows us to iterate over the key-value pairs as tuples of this format (key, value).

for <key-value-pair-as-tuple> in <dictionary>.items():
	# Do this

For example:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}

>>> for pair in ages.items():
	print(pair)

('Gino', 15)
('Nora', 30)
('Talina', 45)

Third Option - Assign Keys and Values to Individual Variables

With .items() and for loops, you can use the power of a tuple assignment to directly assign the keys and values to individual variables that you can use within the loop:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}

# Tuple assignment to assign the key to the variable key 
# and the value to the variable value.
>>> for key, value in ages.items():
	print("Key:", key, "; Value:", value)

Key: Gino ; Value: 15
Key: Nora ; Value: 30
Key: Talina ; Value: 45

Fourth Option - Iterate over the Values

You can iterate over the values of a dictionary using the .values() method.

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> for age in ages.values():
	print(age)

15
30
45
🔸 Dictionary Methods

Dictionaries include very helpful built-in methods that can save you time and work to perform common functionality:

.clear()

This method removes all the key-value pairs from the dictionary.

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> ages.clear()
>>> ages
{}

.get(, )

This method returns the value associated with the key. Otherwise, it returns the default value that was provided as the second argument (this second argument is optional).

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> ages.get("Nora")
30
>>> ages.get("Nor", "Not Found")
'Not Found'

If you don't add a second argument, this is equivalent to the previous syntax with square brackets []that you learned:

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> ages["Nora"]
30
>>> ages.get("Nora")
30

.pop(, )

This method removes the key-value pair from the dictionary and returns the value.

>>> ages = {"Gino": 15, "Nora": 30, "Talina": 45}
>>> ages.pop("Talina")
45
>>> ages
{'Gino': 15, 'Nora': 30}

.update()

This method replaces the values of a dictionary with the values of another dictionary only for those keys that exist in both dictionaries.

An example of this would be a dictionary with the original grades of three students (see code below). We only want to replace the grades of the students who took the make-up exam (in this case, only one student took the make-up exam, so the other grades should remain unchanged).

>>> grades = {"Gino": 0, "Nora": 98, "Talina": 99}
>>> new_grades = {"Gino": 67}
>>> grades.update(new_grades)
>>> grades
{'Gino': 67, 'Nora': 98, 'Talina': 99}

By using the .update() method, we could update the value associated with the string "Gino" in the original dictionary since this is the only common key in both dictionaries.

The original value would be replaced by the value associated with this key in the dictionary that was passed as argument to .update().

💡 Tips: To learn more about dictionary methods, I recommend reading this article in the Python Documentation.

🔹 Mini Project - A Frequencies Dictionary

Now you will apply your knowledge by writing a function freq_dict that creates and returns a dictionary with the frequency of each element of a list, string, or tuple (the number of times the element appears). The elements will be the keys and the frequencies will be the values.

Code

We will be writing the function step-by-step to see the logic behind each line of code.

  • Step 1: The first thing that we need to do is to write the function header. Notice that this function only takes one argument, the list, string or tuple, which we call data.
def freq_dict(data):
  • Step 2: Then, we need to create an empty dictionary that will map each element of the list, string, or tuple to its corresponding frequency.
def freq_dict(data):
	freq = {}
  • Step 3: Then, we need to iterate over the list, string, or tuple to determine what to do with each element.
def freq_dict(data):
	freq = {}
	for elem in data: 
  • Step 4: If the element has already been included in the dictionary, then the element appears more than once and we need to add 1 to its current frequency. Else, if the element is not in the dictionary already, it's the first time it appears and its initial value should be 1.
def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq[elem] += 1
		else:
			freq[elem] = 1
  • Step 5: Finally, we need to return the dictionary.
def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq[elem] += 1
		else:
			freq[elem] = 1
	return freq

🔔 Important: Since we are assigning the elements as the keys of the dictionary, they have to be of an immutable data type.

Examples

Here we have an example of the use of this function. Notice how the dictionary maps each character of the string to how many times it occurs.

>>> def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq[elem] += 1
		else:
			freq[elem] = 1
	return freq

>>> freq_dict("Hello, how are you?")
{'H': 1, 'e': 2, 'l': 2, 'o': 3, ',': 1, ' ': 3, 'h': 1, 'w': 1, 'a': 1, 'r': 1, 'y': 1, 'u': 1, '?': 1}

This is another example applied to a list of integers:

>>> def freq_dict(data):
	freq = {}
	for elem in data:
		if elem in freq:
			freq[elem] += 1
		else:
			freq[elem] = 1
	return freq

>>> freq_dict([5, 2, 6, 2, 6, 5, 2, 2, 2])
{5: 2, 2: 5, 6: 2}

Great Work! Now we have the final function.

🎓 In Summary
  • Dictionary are built-in data types in Python that associate (map) keys to values, forming key-value pairs.
  • You can access a value with its corresponding key.
  • Keys have to be of an immutable data type.
  • You can access, add, modify, and delete key-value pairs.
  • Dictionaries offer a wide variety of methods that can help you perform common functionality.

Originally published by Estefania Cassingena Navone at https://www.freecodecamp.org

Learn Python Tutorial from Basic to Advance

Learn Python Tutorial from Basic to Advance

Basic programming concept in any language will help but not require to attend this tutorial

Description
Become a Python Programmer and learn one of employer's most requested skills of 21st century!

This is the most comprehensive, yet straight-forward, course for the Python programming language on Simpliv! Whether you have never programmed before, already know basic syntax, or want to learn about the advanced features of Python, this course is for you! In this course we will teach you Python 3. (Note, we also provide older Python 2 notes in case you need them)

With over 40 lectures and more than 3 hours of video this comprehensive course leaves no stone unturned! This course includes tests, and homework assignments as well as 3 major projects to create a Python project portfolio!

This course will teach you Python in a practical manner, with every lecture comes a full coding screencast and a corresponding code notebook! Learn in whatever manner is best for you!

We will start by helping you get Python installed on your computer, regardless of your operating system, whether its Linux, MacOS, or Windows, we've got you covered!

We cover a wide variety of topics, including:

Command Line Basics
Installing Python
Running Python Code
Strings
Lists
Dictionaries
Tuples
Sets
Number Data Types
Print Formatting
Functions
Scope
Built-in Functions
Debugging and Error Handling
Modules
External Modules
Object Oriented Programming
Inheritance
Polymorphism
File I/O
Web scrapping
Database Connection
Email sending
and much more!
Project that we will complete:

Guess the number
Guess the word using speech recognition
Love Calculator
google search in python
Image download from a link
Click and save image using openCV
Ludo game dice simulator
open wikipedia on command prompt
Password generator
QR code reader and generator
You will get lifetime access to over 40 lectures.

So what are you waiting for? Learn Python in a way that will advance your career and increase your knowledge, all in a fun and practical way!

Basic knowledge
Basic programming concept in any language will help but not require to attend this tutorial
What will you learn
Learn to use Python professionally, learning both Python 2 and Python 3!
Create games with Python, like Tic Tac Toe and Blackjack!
Learn advanced Python features, like the collections module and how to work with timestamps!
Learn to use Object Oriented Programming with classes!
Understand complex topics, like decorators.
Understand how to use both the pycharm and create .py files
Get an understanding of how to create GUIs in the pycharm!
Build a complete understanding of Python from the ground up!