Learning by doing: Reading books and trying to understand the (code) examples
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

57 lines
1.5 KiB

import string
# list with all valid characters
CHARACTERS = list(string.ascii_letters) + [" ", ",", "'", "?", "Ä", "ö"]
def letter_frequency(sentence):
# init a list of tuples for all valid characters
frequencies = [(c, 0) for c in CHARACTERS]
for letter in sentence:
# find index of selected character
index = CHARACTERS.index(letter)
# increment counter of selected character
frequencies[index] = (letter, frequencies[index][1] + 1)
return frequencies
print(letter_frequency("Hello world, what's going on? Äötsch"))
# sorting self constructed classes by overriding their __lt__ method
class WeirdSortee:
def __init__(self, string, number, sort_num):
self.string = string
self.number = number
self.sort_num = sort_num
def __lt__(self, object):
if self.sort_num:
return self.number < object.number
return self.string < object.string
def __repr__(self):
return "{}:{}".format(self.string, self.number)
a = WeirdSortee('a', 4, True)
b = WeirdSortee('b', 3, True)
c = WeirdSortee('c', 2, True)
d = WeirdSortee('d', 1, True)
l = [a, d, c, b]
print(str(l) + " unsorted")
l.sort()
print(str(l) + " sorted by number")
for i in l:
i.sort_num = False
l.sort()
print(str(l) + " sorted by character")
# using the 'key' argument of the sort() method
x = [(1, 'c'), (2, 'a'), (3, 'b')]
x.sort()
print(str(x) + " sorted by 1st item")
x.sort(key=lambda i: i[1])
print(str(x) + " sorted by 2nd item")