In: Computer Science
Modify your program from Learning Journal Unit 7 to read dictionary items from a file and write the inverted dictionary to a file. You will need to decide on the following:
Create an input file with your original three-or-more items and
add at least three new items, for a total of at least six
items.
Include the following in your Learning Journal submission:
Here is my code for assignment 7 that needs to be modified;
alphabet = "abcdefghijklmnopqrstuvwxyz"
test_dups = ["zzz","dog","bookkeeper","subdermatoglyphic","subdermatoglyphics"]
test_miss = ["zzz","subdermatoglyphic","the quick brown fox jumps over the lazy dog"]
def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c]=1
else:
d[c] += 1
return d
#part 1
def has_duplicates():
for string in test_dups:
dictionary=histogram(string)
duplicates=False
for ch in dictionary.keys():
if dictionary[ch] > 1:
duplicates=True
break
if duplicates==True:
print(string,"has duplicates")
else:
print(string,"has no duplicates")
#part 2
def missing_letters(string):
answer=""
for ch in alphabet:
if ch not in string:
answer=answer+ch
return answer
has_duplicates()
for i in test_miss:
answer=missing_letters(i)
if len(answer)>=1:
print(i,"is missing letters",answer)
else:
print(i,"uses all the letters")
Solution for the above Problem:
/copyable code
def invert_Dictionary(x):
inverse=dict()
for key1 in x.keys():
list_items = x.get(key1)
inverse[list_items]=key1
return inverse
def readfile(file_name):
x=dict()
with open(file_name,'r') as infile:
for line1 in infile.readlines():
line1=line1.strip().split(':')
x[line1[0]]=line1[1]
print('file Read',x)
return x
def writefile(invert_d,file_name):
with open(file_name,'w+') as wtfile:
for key1,value1 in invert_d.items():
wtfile.write(str(key1)+':'+str(value1)+'\n')
def main():
x = readfile('dic.txt')
invt_d = invert_Dictionary(x)
print('Dictionary inverted',invt_d)
writefile(invt_d,'inverted_dic.txt')
main()
Screenshot:

Output:


