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)

Leave a Reply