tup = ('Timothée', 'Sandro', 'Aurélie', 'Fabrice') print(tup) print(tup[2]) y = (1, 6 , 8, 2) print(y) print(max(y)) l = list() print('Methods you can use with a list:') print(dir(l)) print() t = tuple() print('Methods you can use with a tuple:') print(dir(t)) print() # Tuples & Assignment (x, y) = (4, 'Fred') print(y) print() # Tuples & Dictionaries d = dict() d['fastoch'] = 82 d['Sandro'] = 16 for k,v in d.items(): print(k, v) print() # The items() method in dictionaries returns a list of (key,value) tuples tups = d.items() print(tups) print() # Sorting lists of tuples d = {'b':10, 'd':1, 'c':22, 'e':16, 'a':8} # First, we sort the sort the dictionary by key using the items() method and sorted() function print('Not sorted:', d.items()) keySorted = sorted(d.items()) print('Sorted by key:', keySorted) for k,v in d.items(): print(k, v) print() # Sorting by value instead of key valuesFirst = list() for k,v in d.items(): valuesFirst.append((v,k)) print('(value, key) instead of (key, value):', valuesFirst) valueSorted = sorted(valuesFirst) print('Sorted by value:', valueSorted) valueSortedReversed = sorted(valueSorted, reverse=True) print('Sorted by value and reversed:', valueSortedReversed) print() # The top 10 most common words fhand = open('romeo-full.txt') # open my file counts = dict() # create a dictionary for storing each word's count for line in fhand: words = line.split() # turn each line into a list of words for word in words: counts[word] = counts.get(word, 0) + 1 # initialize or increment counting # We transfer our dictionary entries into a list of tuples lst = list() for key, val in counts.items(): newTuple = (val, key) # value becomes first element of each tuple, so that we can later sort by value lst.append(newTuple) lst = sorted(lst, reverse=True) # sorting our list by value and reversing the order so that biggest values come first # We print out top 10 most common words and the corresponding count for val, key in lst[:10]: print(key, val) # The split() method splits a string into a list. You can specify the separator, default separator is any whitespace. print() # Top 10 most common words - SHORTER VERSION fhand = open('romeo-full.txt') counts = dict() for line in fhand: words = line.split() # default separator = whitespace for word in words: counts[word] = counts.get(word, 0) + 1 reversedSortedTuple = sorted([(v,k) for k,v in counts.items()], reverse=True) # reverse=True is for sorting from highest value to lowest for v,k in reversedSortedTuple[:10]: print(k,v)