0% found this document useful (0 votes)
11 views

LN 5 DataStructures

symmetric_difference() - elements that are in either set but not in both issubset() - test if another set contains this set issuperset() - test if this set contains another set So in summary, sets provide useful operations for testing membership and relationships between different collections of unique elements.

Uploaded by

Lee Jiayee
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

LN 5 DataStructures

symmetric_difference() - elements that are in either set but not in both issubset() - test if another set contains this set issuperset() - test if this set contains another set So in summary, sets provide useful operations for testing membership and relationships between different collections of unique elements.

Uploaded by

Lee Jiayee
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

TK2053

PROGRAMMING PARADIGM
Script Programming with Python

- Data Structures
2

Object
Recall (Lecture slide 3):

• An object is an entity that has a type, such as string or


integer
• Determines what can be done with the data
Example the object has the type int, it can be added to another int.

• Determines if the data value can be changed (mutable) or is


constant (immutable)
3

Object
Dynamically typed
keeps track of types for you automatically instead of
requiring declaration code

Strongly typed : type of an object does not change, even if


its value is mutable

Fundamentals of Python: From First Programs Through Data Structures


4

Mutable vs Immutable
Think of an object as a box

Mutable
• An open box, not only can we see the value inside, we
can also change it. BUT we can not change its type.

Immutable
• A closed box with a clear window, we can see the value
but we can not change it.
• When value change, Python will designate a new memory
location to hold the new value
• Variable will reference that new object

Introducing Python, O’Reilly Media, page 16


5

Mutable vs Immutable

Source: Mutable vs Immutable Objects in Python, https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747


6

Mutable vs Immutable

List

Integer

String

Tuple

Fundamentals of Python: From First Programs Through Data Structures


7

Mutable vs Immutable

Fundamentals of Python: From First Programs Through Data Structures


8

List
A list is an ordered sequence of Python objects
• Objects can be of any type
• Objects do not have to all be the same type.

* If you need to keep track of unique values and do not care about order, use set.
9

List – Creating a list


• Can be made with zero or more elements, separated by
commas

• Create with []

Does not need to be unique


• Create an empty list with list()
10

List – Convert other Data Types to List


• list() can be used to convert other data types to lists.

• split() can be used to chop a string into a list of substrings


*to combine, use join()
11

List – Extracting Item


To extract a single value from a list, we can specify its offset
12

List –Modifying Item


To modify a single value from a list by its offset

Since lists are mutable objects, fruits_2 will points to the same memory
location as fruits_1. Any changes of values in fruits_2 will be reflected in
fruits_1 as well.
13

List –Modifying Item


To ensure values in the original list is unchanged

Besides list() conversion function, we can also use the


- The list copy() function
- The list slice[:]

to have an independent fresh list.


14

List – Using Slice


Just like string, we can extract a subsequence of a list by
using a slice
15

List – Nested List


List can contain elements of different types, including other
lists
16

List – Operations
Example of additional list operations
17

List – Operations
Example of additional list operations
18

Tuples
• Tuples (similar to lists), are sequences of arbitrary items.

• Difference with lists, tuples are immutable


• Can not add, delete or change items after the tuple is defined
19

Tuples – Creating a Tuple


• To create an empty tuples

• To create a tuple with one or more elements

You do not need parentheses when creating tuple – it is the trailing commas that define a tuple.
However using parentheses to enclose value can be useful to help make tuple more visible.

• tuple() conversion function can make tuples from other objects


20

Tuples – Creating a Tuple


• To assign multiple variables to elements of tuple (i.e. tuple unpacking)

• Using tuple to exchange values in one statement


21

Tuples vs Lists
We can always use tuple in place of lists, but they have
fewer functions (i.e. no append(), insert() and etc. because
they are immutable)

- Tuple use less space


- Can not clobber tuple items by mistake
- Can use tuples as dictionary keys (see next section)
22

Dictionaries
• Dictionary (similar to lists), but
• The order of items does not matter
• Elements in dictionary can not be selected by an offset. Need to
specify unique key. The key is often a string, but can be any
immutable types (i.e. Boolean, integer, float, tuple, and etc.)

• Dictionaries are mutable, so we can add, delete and


change their key-value elements.
23

Dictionaries – creating a dict


• To create a dictionary, place curly brackets ({ }) around comma-
separated key:value pairs

Empty dictionary with no keys or values

A dictionary with key:value pairs


24

Dictionaries – Convert to dict


• Can use dict() function to convert two-value sequences
(lists or tuples) into a dictionary
25

Dictionaries – Add or Change item


• Adding an item to a dictionary is easy. Just refer to the
item by its key and assign a value.

* Note that dictionary keys must be unique.


26

Dictionaries – Add or Change item


• To change an item in the dictionary

By using the same key (‘Gilliam’), we replace the original value ‘Gerry’ with ‘Terry’.
27

Dictionaries – Get an item by [key]


• This is them most common use of a dictionary. We specify
the dictionary and key to get the corresponding value
28

Dictionaries – Get an item by [key]


• This is them most common use of a dictionary. We specify
the dictionary and key to get the corresponding value

• If the key is not present, you will get an exception. To


avoid this, always check the availability of the key
29

Dictionaries – Get an item by [key]


• To prevent exception, can also use special dictionary get()
function
30

Dictionaries – Get all keys or values


• Use keys() to get all keys and values() to get all values in a
dictionary
31

Dictionaries – Get all key-Value Pairs


• Use items() function to get all key-value pairs
32

Set
• Set (similar to dictionaries), but with its values thrown
away leaving only the keys.

• The keys for set must be unique.

• Same concept in Discrete Mathematics


33

Set – Create a Set


• To create a set, we can use the set() function or enclose
one or more comma-separated values in curly brackets
34

Set – Convert to Set


• We can create a set from list, string, tuple or dictionary,
discarding any duplicate values
35

Set – Test for Value


Example:
Given a dictionary called drinks

Which drinks contain vodka?

Output:
36

Set – Test for Value


Example:
Given a dictionary called drinks

Which drinks contain vodka but no vermouth and cream?

Output:
37

Set – Test for Value


Example:
Given a dictionary called drinks

To save the ingredient sets for drink in variable,


38

Set – Set Operators


Given a test sets

Intersection of the set with special punctuation symbol & or the set
intersection() function
39

Set – Set Operators


Given a test sets

Union of the set by using | or the set union() function


40

Set – Set Operators


Given a test sets

Difference of the set by using - or the set difference() function


41

Set – Set Operators


Besides the common set operations (i.e. union, intersection and
difference), the less common operations are

• Exclusive or using ^ or symmetric_difference()


• Subset of another set by using <= or issubset()
• Proper subset by using <
• Superset by using >= or issuperset()
• Proper superset by using >

*A superset is the opposite of a subset (all members of the second set are also members of the first).
42

Compare Data Structures


Review on creating list, tuple, dictionary

For the list and tuple, the value between the square brackets is an integer
offset. For the dictionary, it’s a key. For all three, the result is a value.
43

Bigger Data Structures


Given 3 lists

Make a tuple containing the lists

Or make a list containing the lists

Or dictionary of lists (* keys need to be immutable)


44

Hands-on Activities
• Store the names of a few of your friends in a list called names. Print a message to
them. The text of each message should be the same but each message should be
personalized with the person’s name.

• Use a dictionary to store information about a person you know. Store their first name,
last name, age, and the city in which they live. You should have keys such as
first_name, last_name, age, and city. Print each piece of information stored in your
dictionary.

You might also like