Containers

Containers are objects that contain other objects

What is an object?

In python, everything is an object. Even the simplest strings and numbers are considered as objects

Lists

  • A python list is an ordered container
  • A list is created by using square brackets ([])
  • Objects are poaced inside those brackets and are separated by commas (,)
pets = ['dog', 'cat', 'rabbit', 'monkey']
print(pets)
print(type(pets))
['dog', 'cat', 'rabbit', 'monkey']
<class 'list'>

Indexing

  • Indexing is used to access items of a list
  • Indexing uses square brackets and numbers to access individual items of a list
  • Where 0 refers to the first item, 1 refers to the second item, and so on
# indexing
print(pets[2])
rabbit
#range of indexes
print(pets[1:3])
['cat', 'rabbit']

Adding items to a list

pets = ['dog', 'cat', 'rabbit', 'monkey']
pets.append('hamster')
print(pets)
['dog', 'cat', 'rabbit', 'monkey', 'hamster']
pets = ['dog', 'cat', 'rabbit', 'monkey']
pets.insert(1, 'hamster')
print(pets)
['dog', 'hamster', 'cat', 'rabbit', 'monkey']

Deleting Items from a list

pets = ['dog', 'cat', 'rabbit', 'monkey']
pets.pop()
print(pets)
['dog', 'cat', 'rabbit']
pets = ['dog', 'cat', 'rabbit', 'monkey']
pets.remove('rabbit')
print(pets)
['dog', 'cat', 'monkey']
pets = ['dog', 'cat', 'rabbit', 'monkey']
del pets [2]
print(pets)
['dog', 'cat', 'monkey']

Getting the length of a list

The length of a list refers to the number of items in a list, use the len() method

Homework

  • Check if an item exist

Extending a list

The extend() methods adds all items from one list to another

pets = ['dog', 'cat']
other_pets = ['rabbit', 'monkey']
pets.extend(other_pets)
print(pets)
['dog', 'cat', 'rabbit', 'monkey']

Tuple

  • Python tuple is an ordered container
  • Its the same as a list but the items of tuples cannot be changed
  • We create a tuple using round brackets ()
pets = ('dog', 'cat', 'rabbit')
print(pets)
print(type(pets))
('dog', 'cat', 'rabbit')
<class 'tuple'>

Sets

  • A set is a container/collection that is unordered and immutable
  • We create a set using {}
pets = {'dog', 'cat', 'rabbit'}
print(pets)
{'rabbit', 'dog', 'cat'}
# A set can contain objects of different data types
mixed = {'dog', 21, True}
print(mixed)
print(type(mixed))
{True, 'dog', 21}
<class 'set'>

Accessing set elements

  • Unlike lists and tuples, you cannot access the items in a set using indexes
  • This is because a set is unordered and not indexed
  • However, we can use a for loop to access all its items one-by-one

Note: We’ll discuss a for loop in the next chapter

# Accessing
pets = {'dog', 'cat', 'rabbit'}
for pet in pets:
    print(pet)
rabbit
dog
cat

Adding elements to a set

# Adding items to a set
pets = {'dog', 'cat', 'rabbit'}
pets.add('fish')
print(pets)
{'rabbit', 'dog', 'cat', 'fish'}

Removing set elements

# Removing items from a set
pets = {'dog', 'cat', 'rabbit'}
pets.remove('cat') # remove
print(pets)
{'rabbit', 'dog'}
pets = {'dog', 'cat', 'rabbit'}
pets.discard('rabbit') #discard
print(pets)
{'dog', 'cat'}
pets = {'dog', 'cat', 'rabbit'}
pets.pop() # pop removes the last item from the set
print(pets)
{'dog', 'cat'}

Homework

  • Find the length of a set
  • Check if an element exists
  • Combine sets

Getting the difference between sets

# Getting the difference
first_numbers = {1, 2, 3, 4}
second_numbers = {3, 4, 5, 6}

difference = first_numbers - second_numbers
# another way
difference2 = first_numbers.difference(second_numbers)
print(difference)
{1, 2}

Dictionaries

A dictionary is an unordered and mutable colletion of items

# Creating 
person = {
    'first_name': 'Voila', 
    'last_name': 'Akullu',
    'age': 16
    }
print(person)
{'first_name': 'Voila', 'last_name': 'Akullu', 'age': 16}
# Accessing items
print(person['last_name'])
Akullu
# Adding items 
person['middle_name'] = 'Vee'
print(person)
{'first_name': 'Voila', 'last_name': 'Akullu', 'age': 16, 'middle_name': 'Vee'}
# Remove items
person.pop('age')
print(person)
{'first_name': 'Voila', 'last_name': 'Akullu', 'middle_name': 'Vee'}

Homework

  • Check if an element exists
  • Find the lenght of a dictionary
# Nesting dictionaries
employees = {
    'manager': {
        'name': 'Akullu Viola',
        'age': 29
    },
    'programmer': {
        'name': 'Juma Shafara',
        'age': 30
    }
}

print(employees)
{'manager': {'name': 'Akullu Viola', 'age': 29}, 'programmer': {'name': 'Juma Shafara', 'age': 30}}
# Accessing nested dictionary
programmer = employees['programmer']
print(programmer['name'])
Juma Shafara
# Using a dictionary constructer
names = ('a1', 'b2', 'c3')
dictionary = dict(names)
print(dictionary)
{'a': '1', 'b': '2', 'c': '3'}
Back to top