| @ -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) | |||||