python data structures coursera week 6 quiz answers
Chapter 10 Quiz
1. What is the difference between a Python tuple and Python list?
- Lists are mutable and tuples are not mutable
- Lists maintain the order of the items and tuples do not maintain order
- Lists are indexed by integers and tuples are indexed by strings
- Tuples can be expanded after they are created and lists cannot
2. Which of the following methods work both in Python lists and Python tuples?
- append()
- reverse()
- pop()
- sort()
- index()
3. What will end up in the variable y after this code is executed?
x , y = 3, 4
- A two item tuple
- 4
- 3
- A two item list
- A dictionary with the key 3 mapped to the value 4
4. In the following Python code, what will end up in the variable y?
x = { ‘chuck’ : 1 , ‘fred’ : 42, ‘jan’: 100}
y = x.items()
- A list of strings
- A list of integers
- A list of tuples
- A tuple with three integers
5. Which of the following tuples is greater than x in the following Python sequence?
x = (5, 1, 3)
if ??? > x :
…
- (5, 0, 300)
- (0, 1000, 2000)
- (4, 100, 200)
- (6, 0, 0)
6. What does the following Python code accomplish, assuming the c is a non-empty dictionary?
tmp = list()
for k, v in c.items() :
tmp.append( (v, k) )
- It sorts the dictionary based on its key values
- It creates a list of tuples where each tuple is a value, key pair
- It computes the largest of all of the values in the dictionary
- It computes the average of all of the values in the dictionary
7. If the variable data is a Python list, how do we sort it in reverse order?
- data.sort(reverse=True)
- data.sort.reverse()
- data = sortrev(data)
- data = data.sort(-1)
8. Using the following tuple, how would you print 'Wed'?
days = (‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’, ‘Sat’, ‘Sun’)
- print(days(2))
- print(days[1])
- print(days.get(1,-1))
- print(days{2})
- print(days[2])
- print[days(2)]
9. In the following Python loop, why are there two iteration variables (k and v)?
c = {‘a’:10, ‘b’:1, ‘c’:22}
for k, v in c.items() :
…
- Because for each item we want the previous and current key
- Because the items() method in dictionaries returns a list of tuples
- Because the keys for the dictionary are strings
- Because there are two items in the dictionary
10. Given that Python lists and Python tuples are quite similar - when might you prefer to use a tuple over a list?
- For a list of items that want to use strings as key values instead of integers
- For a list of items you intend to sort in place
- For a list of items that will be extended as new items are found
- For a temporary variable that you will use and discard without modifying
Assignment 10.2
10.2 Write a program to read through the mbox-short.txt and figure out the distribution by hour of the day for each of the messages. You can pull the hour out from the 'From ' line by finding the time and then splitting the string a second time using a colon. From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 Once you have accumulated the counts for each hour, print out the counts, sorted by hour as shown below.
file_name = “mbox-short.txt”
try:
file = open(file_name, “r”)
except FileNotFoundError:
print(f”File {file_name} not found.”)
quit()
hour_counts = {}
for line in file:
if line.startswith(‘From ‘):
words = line.split()
time = words[5].split(‘:’)
hour = time[0]
hour_counts[hour] = hour_counts.get(hour, 0) + 1
for hour, count in sorted(hour_counts.items()):
print(hour, count)