o Defined using square brackets and commas o E.g.: ages=[21, 24, 40] o Index starts with 0 not 1. o Print(age[2]) 40 o Heterogenous – can include numbers, string, etc o Strings are really lists of characters o Slicing o Append, extend o Del fruit = no variable o Fruit.clear = no entries in variable o Multidimensional lists (lists of lists / nested lists). Useful to store matrices o List comprehensions Tuples are immutable (cannot change) Sets. o Set of green, blue, red is the same as the set red, blue, green o Do not contain duplicates. o If you put a list in a set, duplicates are removed o Unordered list. So e.g. for a genome you need to use a list because you need it in order Dictionaries o Data structure which has a key and a value o Very fast to read and write o Use curly brackets o Example: If you have a list with names. The fastest would be the 1st on list and slowest would be the last on list. Average time is n/2. If you use a function e.g. number of letters in each name – you can create buckets. When you search for a record, instead of going linearly, you will use function of what you’re searching and you go directly to that bucket. In a list you only have 1 best case. If there are 6 buckets, there are 6 best cases. This is called a hash function. You want many shallow buckets. It has to be deterministic – same input always gets the same output. Average time is log n