CS111 – Fundamentals of CS�Lecture 10�Python III�
Reading for this & last lectures
2
Lecture 10 Outline
3
Remember
4
Python 3 Keywords
5
6
1. Dictionaries
1. Dictionaries
1. Dictionaries Are Hastables
0
1
2
3
Key 1
Hash Function
Key 2
Key 0
Python Dictionaries Are Ordered
Key 1
Hash Function
Key 2
Key 0
1. Dictionaries
Building a Dictionary
marks = {'Ali': 30, 'Sami': 35}
print (marks)
marks ['Mai'] = 39
print (marks)
marks ['Ali'] = 32
print (marks['Ali'])
del marks ['Ali']
Building a Dictionary
marks = {
'Ali': 30,
'Sami': 35,
'Mai': 28
}
marks
Building a Dictionary
marks = {
'Ali': 30,
'Sami': 35,
'Mai': 28,
'Ali': 20 # Change Ali’s age
}
marks
All Functions of a Dictionary
>> dir (int) # All functions of int
>> dir ({}) # Dictionary func
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
List vs. Dictionary
Iterating over Dictionary #1
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks)
for key, value in marks.items():
if (key[0].upper() == 'A'):
print (key, ' ', value)
17
Iterating over Dictionary #2
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks)
for key in marks.keys():
print(key, ' ', marks[key])
18
Iterating over Dictionary #3
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks)
for key in marks:
print(key, '->', marks[key])
19
What is really happening?
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
itr = marks.__iter__()
while itr.__length_hint__() > 0:
key = itr.__next__()
print(key, '->', marks[key])
20
Iterating over Dictionary #4
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks)
sum = 0
for value in marks.values():
sum += value
print(sum / len(marks))
21
Deleting Dictionary Items
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks)
del marks['Sami']
print (marks)
22
Accessing Dictionary Items
marks = {
'Ali': 30,
'Sami': 35,
'Amina ': 28,
'Aliaa': 20
}
print (marks['Ali'])
print (marks['Amir']) #Error
print (marks.get('Ali'))
print (marks.get('Amir')) #None
marks.get('Amir', 'No Such Key')
23
24
2. Files
Reading from Files
# Open existing file for reading
file = open("test.txt")
f = open("C:/Python38/readme.txt")
26
27
Mode | Description |
r | Opens a file for reading. (default) |
w | Opens a file for writing. Creates a new file if it does not exist or truncates the file if it exists. |
x | Opens a file for exclusive creation. If the file already exists, the operation fails. |
a | Opens a file for appending at the end of the file without truncating it. Creates a new file if it does not exist. |
Opening Files
# equivalent to 'r' or 'rt'
f = open("test.txt")
# write in text mode
f = open("test.txt",'w')
# read and write in binary mode
f = open("img.bmp",'r+b')
28
Reading from Files
29
Reading from Files
30
Reading from Files
print(line, end = '')
31
Writing to File
32
Closing a File
33
Exercise #1
Homework …..
35
Readings
36