In this lesson, we will learn about...
While there are many others, we will look at the four main collection data types. Many have roots in math. They can hold any data type, and even multiple types at once. They have many similarities but some important differences.
| Type | Representation | Ordered? | Changeable / Mutable? | Duplicates? | Special Qualities |
|---|---|---|---|---|---|
| List | [] |
Yes | Yes | Yes | |
| Tuple | () |
Yes | No | Yes | |
| Set | {} |
No | Yes | No | Unindexed |
| Dictionary | {:} |
No | Yes | No | Indexed by key |
This is the closest data type to the traditional array.
fruits = ["apple", "banana", "orange"]
print(fruits)
print(len(fruits))
print(fruits[1])
print(fruits[-1])
print(fruits[0:2])
print("banana" in fruits)
print(fruits[0].upper())
print(fruits[1][1])
['apple', 'banana', 'orange'] 3 banana orange ['apple', 'banana'] True APPLE a
fruits = ["apple", "banana", "orange"]
veggies = ["carrot", "squash"]
fruits[1] = "pineapple"
print(fruits)
fruits.append("blueberry")
fruits.insert(1, "tomato")
print(fruits)
fruits.remove("apple")
print(fruits)
popped = fruits.pop()
print(fruits)
print(popped)
print(fruits + veggies)
fruits.clear()
print(fruits)
['apple', 'pineapple', 'orange'] ['apple', 'tomato', 'pineapple', 'orange', 'blueberry'] ['tomato', 'pineapple', 'orange', 'blueberry'] ['tomato', 'pineapple', 'orange'] blueberry ['tomato', 'pineapple', 'orange', 'carrot', 'squash'] []
There are many more list methods available. A reference can be found here.
These are unordered and unchangeable / immutable.
fruits = ("apple", "banana", "orange")
print(fruits)
print(len(fruits))
print(fruits[1])
print(fruits[-1])
print(fruits[0:2])
print("banana" in fruits)
print(fruits[0].upper())
print(fruits[1][1])
('apple', 'banana', 'orange')
3
banana
orange
('apple', 'banana')
True
APPLE
a
fruits = ("apple", "banana", "orange")
veggies = ("carrot", "squash")
# fruits[1] = "pineapple" ## Illegal!
# print(fruits)
# fruits.append("blueberry") ## Illegal!
# fruits.insert(1, "tomato") ## Illegal!
# print(fruits)
# fruits.remove("apple") ## Illegal!
# print(fruits)
# popped = fruits.pop() ## Illegal!
# print(fruits)
# print(popped)
print(fruits + veggies)
# fruits.clear() ## Illegal!
# print(fruits)
('apple', 'banana', 'orange', 'carrot', 'squash')
There are only two methods available for tuples, count() and index(). Learn more here.
These have no order and do not allow duplicates. They are also unindexed.
fruits = {"apple", "banana", "orange"}
print(fruits)
print(len(fruits))
# print(fruits[1]) ## Illegal!
# print(fruits[-1]) ## Illegal!
# print(fruits[0:2]) ## Illegal!
print("banana" in fruits)
# print(fruits[0].upper()) ## Illegal!
# print(fruits[1][1]) ## Illegal!
{'orange', 'banana', 'apple'}
3
True
fruits = {"apple", "banana", "orange"}
veggies = {"carrot", "squash"}
# fruits[1] = "pineapple" ## Illegal!
# print(fruits)
fruits.add("blueberry")
# fruits.insert(1, "tomato") ## Illegal!
print(fruits)
fruits.remove("apple")
print(fruits)
fruits.discard("lemon")
print(fruits)
popped = fruits.pop()
print(fruits)
print(popped)
union = fruits.union(veggies)
print(union)
fruits.clear()
print(fruits)
{'orange', 'blueberry', 'banana', 'apple'}
{'orange', 'blueberry', 'banana'}
{'orange', 'blueberry', 'banana'}
{'blueberry', 'banana'}
orange
{'carrot', 'blueberry', 'banana', 'squash'}
set()
There are many more set methods available. A reference can be found here.
A dictionary is a map between a string key and a value.
colors = {"orange": "orange", "banana": "yellow", "apple": "red"}
print(colors)
print(colors.values())
print(colors.items())
print(len(colors))
print(colors["banana"])
print("banana" in colors)
print("yellow" in colors)
{'orange': 'orange', 'banana': 'yellow', 'apple': 'red'}
dict_values(['orange', 'yellow', 'red'])
dict_items([('orange', 'orange'), ('banana', 'yellow'), ('apple', 'red')])
3
yellow
True
False
colors = {"orange": "orange", "banana": "yellow", "apple": "red"}
colors2 = {"tomato": "red"}
colors["blueberry"] = "blue"
print(colors.items())
popped = colors.pop("apple")
print(colors.items())
print(popped)
popped = colors.popitem()
print(colors.items())
print(popped)
colors["more"] = colors2
print(colors.items())
colors.clear()
print(colors.items())
dict_items([('orange', 'orange'), ('banana', 'yellow'), ('apple', 'red'), ('blueberry', 'blue')])
dict_items([('orange', 'orange'), ('banana', 'yellow'), ('blueberry', 'blue')])
red
dict_items([('orange', 'orange'), ('banana', 'yellow')])
('blueberry', 'blue')
dict_items([('orange', 'orange'), ('banana', 'yellow'), ('more', {'tomato': 'red'})])
dict_items([])
There are many more dictionary methods available. A reference can be found here.