|
@ -0,0 +1,78 @@ |
|
|
|
|
|
from collections import defaultdict |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stocks = {"GOOG": (613.30, 625.86, 610.50), |
|
|
|
|
|
"MSFT": (30.25, 30.70, 30.19)} |
|
|
|
|
|
|
|
|
|
|
|
# different possibilities to get values from the dictionary |
|
|
|
|
|
print("GOOG: {}".format(stocks["GOOG"])) |
|
|
|
|
|
print("RIM: {}".format(stocks.get("RIM", "NOT FOUND"))) |
|
|
|
|
|
stocks.setdefault("RIM", (67.38, 68.48, 67.28)) |
|
|
|
|
|
print("RIM: {}".format(stocks["RIM"])) |
|
|
|
|
|
|
|
|
|
|
|
for stock, values in stocks.items(): |
|
|
|
|
|
print("{} last value is {}".format(stock, values[0])) |
|
|
|
|
|
|
|
|
|
|
|
random_keys = {} |
|
|
|
|
|
random_keys["astring"] = "somestring" |
|
|
|
|
|
random_keys[5] = "aninteger" |
|
|
|
|
|
random_keys[25.2] = "floats work too" |
|
|
|
|
|
random_keys[("abc", 123)] = "so do tuples" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AnObject(object): |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, avalue): |
|
|
|
|
|
self.avalue = avalue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my_object = AnObject(14) |
|
|
|
|
|
random_keys[my_object] = "We can even store objects" |
|
|
|
|
|
my_object.avalue = 12 |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
random_keys[[1, 2, 3]] = "We can't store lists though" |
|
|
|
|
|
except: |
|
|
|
|
|
print("unable to store list \n") |
|
|
|
|
|
|
|
|
|
|
|
for key, value in random_keys.items(): |
|
|
|
|
|
print("{} has value {}".format(key, value)) |
|
|
|
|
|
if hasattr(key, "avalue"): |
|
|
|
|
|
print("{}.avalue ={}".format(key, key.avalue)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def letter_frequency(sentence): |
|
|
|
|
|
frequencies = {} |
|
|
|
|
|
for letter in sentence: |
|
|
|
|
|
frequency = frequencies.setdefault(letter, 0) |
|
|
|
|
|
frequencies[letter] = frequency + 1 |
|
|
|
|
|
return frequencies |
|
|
|
|
|
|
|
|
|
|
|
print(letter_frequency("Hello world, what's going on?")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# defaultdict using built-in function |
|
|
|
|
|
def letter_frequency_defdict(sentence): |
|
|
|
|
|
frequencies = defaultdict(int) |
|
|
|
|
|
for letter in sentence: |
|
|
|
|
|
frequencies[letter] += 1 |
|
|
|
|
|
return frequencies |
|
|
|
|
|
|
|
|
|
|
|
print(letter_frequency_defdict("Hello world, what's going on?")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# defaultdict using self defined function |
|
|
|
|
|
num_items = 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def tuple_counter(): |
|
|
|
|
|
global num_items |
|
|
|
|
|
num_items += 1 |
|
|
|
|
|
return num_items, [] |
|
|
|
|
|
|
|
|
|
|
|
d = defaultdict(tuple_counter) |
|
|
|
|
|
|
|
|
|
|
|
d['a'][1].append("hello") |
|
|
|
|
|
d['b'][1].append("world") |
|
|
|
|
|
|
|
|
|
|
|
print(d) |