Python Dictionaries

 


thisdict = {

  "brand": "Ford",

  "model": "Mustang",

  "year": 1964

}

Dictionary

Dictionaries are used to store data values in key:value pairs.

A dictionary is a collection which is ordered*, changeable and does not allow duplicates.

As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.

Dictionaries are written with curly brackets, and have keys and values:

Example

Create and print a dictionary:


thisdict = {

  "brand": "Ford",

  "model": "Mustang",

  "year": 1964

}

print(thisdict)


Dictionary Items

Dictionary items are ordered, changeable, and does not allow duplicates.

Dictionary items are presented in key:value pairs, and can be referred to by using the key name.

Example

Print the "brand" value of the dictionary:

thisdict = {

  "brand": "Ford",

  "model": "Mustang",

  "year": 1964

}

print(thisdict["brand"])

Ordered or Unordered?

As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.


When we say that dictionaries are ordered, it means that the items have a defined order, and that order will not change.


Unordered means that the items does not have a defined order, you cannot refer to an item by using an index.


Changeable

Dictionaries are changeable, meaning that we can change, add or remove items after the dictionary has been created.


Duplicates Not Allowed

Dictionaries cannot have two items with the same key:


Example

Duplicate values will overwrite existing values:

thisdict = {

  "brand": "Ford",

  "model": "Mustang",

  "year": 1964,

  "year": 2020

}

print(thisdict)

Dictionary Length

To determine how many items a dictionary has, use the len() function:


Example

Print the number of items in the dictionary:


print(len(thisdict))

Dictionary Items - Data Types

The values in dictionary items can be of any data type:


Example

String, int, boolean, and list data types:


thisdict = {

  "brand": "Ford",

  "electric": False,

  "year": 1964,

  "colors": ["red", "white", "blue"]

}

type()

From Python's perspective, dictionaries are defined as objects with the data type 'dict':


<class 'dict'>

Example

Print the data type of a dictionary:


thisdict = {

  "brand": "Ford",

  "model": "Mustang",

  "year": 1964

}

print(type(thisdict))

Python Collections (Arrays)

There are four collection data types in the Python programming language:


List is a collection which is ordered and changeable. Allows duplicate members.

Tuple is a collection which is ordered and unchangeable. Allows duplicate members.

Set is a collection which is unordered and unindexed. No duplicate members.

Dictionary is a collection which is ordered and changeable. No duplicate members.

When choosing a collection type, it is useful to understand the properties of that type. Choosing the right type for a particular data set could mean retention of meaning, and, it could mean an increase in efficiency or security.


Python If ... Else



 Python Conditions and If statements

Python supports the usual logical conditions from mathematics:


Equals: a == b

Not Equals: a != b

Less than: a < b

Less than or equal to: a <= b

Greater than: a > b

Greater than or equal to: a >= b

These conditions can be used in several ways, most commonly in "if statements" and loops.


An "if statement" is written by using the if keyword.


Example

If statement:


a = 33

b = 200

if b > a:

  print("b is greater than a")

In this example we use two variables, a and b, which are used as part of the if statement to test whether b is greater than a. As a is 33, and b is 200, we know that 200 is greater than 33, and so we print to screen that "b is greater than a".


Indentation

Python relies on indentation (whitespace at the beginning of a line) to define scope in the code. Other programming languages often use curly-brackets for this purpose.


Example

If statement, without indentation (will raise an error):


a = 33

b = 200

if b > a:

print("b is greater than a") # you will get an error

Elif

The elif keyword is pythons way of saying "if the previous conditions were not true, then try this condition".


Example

a = 33

b = 33

if b > a:

  print("b is greater than a")

elif a == b:

  print("a and b are equal")

In this example a is equal to b, so the first condition is not true, but the elif condition is true, so we print to screen that "a and b are equal".


Else

The else keyword catches anything which isn't caught by the preceding conditions.


Example

a = 200

b = 33

if b > a:

  print("b is greater than a")

elif a == b:

  print("a and b are equal")

else:

  print("a is greater than b")

In this example a is greater than b, so the first condition is not true, also the elif condition is not true, so we go to the else condition and print to screen that "a is greater than b".


You can also have an else without the elif:


Example

a = 200

b = 33

if b > a:

  print("b is greater than a")

else:

  print("b is not greater than a")

Short Hand If

If you have only one statement to execute, you can put it on the same line as the if statement.


Example

One line if statement:


if a > b: print("a is greater than b")

Short Hand If ... Else

If you have only one statement to execute, one for if, and one for else, you can put it all on the same line:


Example

One line if else statement:


a = 2

b = 330

print("A") if a > b else print("B")

This technique is known as Ternary Operators, or Conditional Expressions.


You can also have multiple else statements on the same line:


Example

One line if else statement, with 3 conditions:


a = 330

b = 330

print("A") if a > b else print("=") if a == b else print("B")

And

The and keyword is a logical operator, and is used to combine conditional statements:


Example

Test if a is greater than b, AND if c is greater than a:


a = 200

b = 33

c = 500

if a > b and c > a:

  print("Both conditions are True")

Or

The or keyword is a logical operator, and is used to combine conditional statements:


Example

Test if a is greater than b, OR if a is greater than c:


a = 200

b = 33

c = 500

if a > b or a > c:

  print("At least one of the conditions is True")

Nested If

You can have if statements inside if statements, this is called nested if statements.


Example

x = 41


if x > 10:

  print("Above ten,")

  if x > 20:

    print("and also above 20!")

  else:

    print("but not above 20.")

The pass Statement

if statements cannot be empty, but if you for some reason have an if statement with no content, put in the pass statement to avoid getting an error.


Example

a = 33

b = 200


if b > a:

  pass