Sets, Tuples, and Dictionaries

Here is more practice with tuples and dictionaries. In addition, the Python built-in data structure known as a set is also covered. Sets are not ordered, and their elements cannot be indexed (sets are not lists). To understand Python set operations, remind yourself of basic operations such as the union and intersection. Use this tutorial to compare and contrast the syntax and programming uses for lists, tuples, sets, and dictionaries.

Practice

Solutions

Here's what you should have seen while working through the exercises.

Sets

Here's what you should have seen in your REPL:

>>> my_set = {}>>> type(my_set)<class 'dict'>>>> my_set = set()>>> type(my_set)<class 'set'>>>> my_set = {1, 2, 3}>>> my_set.add(4)>>> my_set.remove(2)>>> 2 in my_setFalse>>> my_set{1, 3, 4}>>> my_set.add(3)>>> my_set{1, 3, 4}>>> my_other_set = {1, 2, 3}>>> my_set.union(my_other_set){1, 2, 3, 4}>>> my_set.intersection(my_other_set){1, 3}

Tuples

Here's what you should have seen in your REPL:

>>> my_tuple = 1,>>> my_tuple(1,)>>> my_tuple[1] = 2Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment

>>> person = ('Jim', 29, 'Austin, TX')>>> name, age, hometown = person>>> name'Jim'>>> age29>>> hometown'Austin, TX'

Dictionaries

Here's what you should have seen in your REPL:

>>> my_dict = {"key": "value"}>>> my_dict[0]Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: 0>>> my_dict["hello"] = "world">>> my_dict["foo"] = "bar">>> my_dict{'key': 'value', 'hello': 'world', 'foo': 'bar'}>>> my_dict["hello"]'world'>>> my_dict.get("hello")'world'>>> my_dict["baz"]Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: 'baz'>>> "baz" in my_dictFalse>>> my_dict.get("baz", "default response")'default response'>>> my_dict.keys()dict_keys(['key', 'hello', 'foo'])>>> my_dict.values()dict_values(['value', 'world', 'bar'])>>> my_dict.items()dict_items([('key', 'value'), ('hello', 'world'), ('foo', 'bar')])

Mutability

Here's what you should have seen in your REPL:

>>> my_list = [1, 2, 3]>>> my_list[0] = 'a'>>> my_list['a', 2, 3]>>> my_dict = {"hello": "world"}>>> my_dict["foo"] = "bar">>> my_dict{'hello': 'world', 'foo': 'bar'}>>> my_set = {1, 2, 3}>>> my_set[0] = 'a' # This will throw a TypeErrorTraceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'set' object does not support item assignment>>> my_set.add('a')>>> my_set{1, 2, 3, 'a'}>>> my_tuple = (1, 2, 3)>>> my_tuple[0] = 'a' # This will throw a TypeErrorTraceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment