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.