Posts

Python data structures: Assignment 10.2

Coursera: Python data structures Assignment 10.2 Week 6 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. Solution: name = input("Enter file:") if len(name) < 1 : name = "mbox-short.txt" handle = open(name) counts = dict() for line in handle : line = line.rstrip() if line == "": continue words = line.split() if words[0] != "From" : continue time = words[5].split(":") counts[time[0]] = counts.get(time[0], 0) + 1 list = list() for key,value in counts.items() : list.append((key,value)) list.sort() for hour,count in list : ...

Python data structures: Certificate

Image
Coursera: Python data structures Official website for Coursera: https://www.coursera.org/learn/python *My certificate

Python data structures: Chapter 10 Quiz

Image
Coursera: Python data structures Chapter 10 Week 6 Quiz solutions: Coursera official website: https://www.coursera.org/learn/python-data/home/welcome

Python data structures: Assignment 9.4

Coursera: Python data structures Assignment 9.4 Week 5 9.4  Write a program to read through the  mbox-short.txt  and figure out who has sent the greatest number of mail messages. The program looks for 'From ' lines and takes the second word of those lines as the person who sent the mail. The program creates a Python dictionary that maps the sender's mail address to a count of the number of times they appear in the file. After the dictionary is produced, the program reads through the dictionary using a maximum loop to find the most prolific committer. Solution: name = input("Enter file:") if len(name) < 1 : name = "mbox-short.txt" handle = open(name) count = dict() for line in handle:     word = line.split()     if line.startswith('From '):         count[word[1]] = count.get(word[1], 0) + 1 largest = 0 email = '' for key in count:     if  count[key] > largest:    ...

Python data structure: Chapter 9 Quiz

Image
Coursera : Python data structures Chapter 9 Week 5 Quiz solutions: Coursera official website: https://www.coursera.org/learn/python-data/home/welcome

Python data structures: Assignment 8.5

Coursera: Assignment 8.5 Week 4 8.5 Open  the file  mbox-short.txt  and read it line by line. When you find a line that starts with 'From ' like the following line: From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 You will parse the From line using split() and print out the second word in the line (i.e. the entire address of the person who sent the message). Then print out a count at the end. Hint:  make sure not to include the lines that start with 'From:'. You can download the sample data at  http://www.py4e.com/code3/mbox-short.txt Solution:- fname =input("Enter file name: ") fh = open(fname) count = 0 for line in fh:     line = line.rstrip()     if not line.startswith('From '):         continue     words = line.split()     print (words[1])     count += 1 print ("There were", count, "lines in the file with From as the first word") Cou...