python dict get
# The get() method on dicts
# and its "default" argument
name_for_userid = {
382: "Alice",
590: "Bob",
951: "Dilbert",
}
def greeting(userid):
return "Hi %s!" % name_for_userid.get(userid, "there")
>>> greeting(382)
"Hi Alice!"
>>> greeting(333333)
"Hi there!"
'''When "get()" is called it checks if the given key exists in the dict.
If it does exist, the value for that key is returned.
If it does not exist then the value of the default argument is returned instead.
'''
# transferred by @ebdeuslave
# From Dan Bader - realpython.com
dic = {"A": 1, "B": 2}
print(dic["A"])
print(dic["C"])
# This would produce a KeyError saying the key was not found
# To avoid these situations, we use the get() function
# If it finds nothing, it'll return None instead of an error.
print(dic.get("C")) # None
print(dic.get("C","Not Found ! ")) # Not Found !
# You can specify what the other value can be, like the example above.
############### PRATICAL EXAMPLE OF THE GET METHOD ####################
# How to use dictionaries to find the number of times each word is
# repeated in a text file?
# Example where we don't use GET:
filename = input("Enter File:")
hand = open(filename)
dt = dict()
for line in hand:
line = line.rstrip()
words = line.split()
for word in words:
if word in dt:
dt[word] = dt[word] + 1
else:
dt[word] = 1
# Example where we use GET:
filename = input("Enter File:")
hand = open(filename)
dt = dict()
for line in hand:
line = line.rstrip()
words = line.split()
for word in words:
dt[word] = dt.get(word,0) + 1
# What GET does is, return the value of the keyword if it already exists.
# In this context, it will return the number of times that word has
# been repeated until that moment. If the word doesn't exist in the
# dictionary then, the default argument is returned, and a new key with
# value 1 is created:
dt[new_word] = 0 + 1