Dictionaries
Lists
my_list = ['a','b','c','d'] # index 0 1 2 3 my_list[0] > 'a' my_list.index['c'] > 2
Intro
Keys Values ---- ------ Firm Code FRD Process Date 10/14/2019 CUSIP 13246879
Representation of a dictionary = { ‘key-1’ : ‘value-1’ , ‘key-2’ : ‘value-2’ , ‘key-3’ : ‘value-3’ , ‘key-4’ : ‘value-4’ }
Creation
# Create an empty dict my_dict = {} my_dict > {} # native tickersymbols = {'AAPL':'Apple', 'F':'Ford', 'XON':'Exxon'} > {'AAPL': 'Apple', 'F': 'Ford', 'XON': 'Exxon'} # OR by lists tickersymbols = dict([['AAPL','Apple'],['F','Ford'],['XON','Exxon']]) > {'AAPL': 'Apple', 'F': 'Ford', 'XON': 'Exxon'}
Handling a dictionary
# Adding tickersymbols['TSLA'] = 'Tesla' tickersymbols > {'AAPL': 'Apple', 'F': 'Ford', 'XON': 'Exxon', 'TSLA': 'Tesla'} # Update tickersymbols['TSLA'] = 'Tesla_Inc' tickersymbols > {'AAPL': 'Apple', 'F': 'Ford', 'XON': 'Exxon', 'TSLA': 'Tesla_Inc'} # Deleting an entry del(tickersymbols['F']) tickersymbols > {'AAPL': 'Apple', 'XON': 'Exxon', 'TSLA': 'Tesla_Inc'}
Accessing
# Entry in dict tickersymbols['XON'] > 'Exxon' # No entry in dict tickersymbols['IBM'] > KeyError: 'IBM' # Second method tickersymbols.get('XON') > 'Exxon' tickersymbols.get('IBM') > (nothing) tickersymbols.get('IBM','Missing ticker') > 'Missing ticker'
Examples
from datetime import datetime, timedelta alphabet_hist = {datetime.datetime(2019, 7, 30, 0, 0): 1228, datetime.datetime(2019, 7, 31, 0, 0): 1218.2, datetime.datetime(2019, 8, 1, 0, 0): 1211.78, datetime.datetime(2019, 8, 2, 0, 0): 1196.32} closing_price_date = datetime.datetime(2019, 8, 2, 0, 0) # Closing price for day before day_before_closing_price_date = closing_price_date - timedelta(days=1) # Safely print closing price day before or None if it's missing print(alphabet_hist.get(day_before_closing_price_date)) > 1211.78 # Get day eight weeks in future future_closing_price_date = closing_price_date + timedelta(weeks=8) # Safely get value for the future date or the string 'Missing' print(alphabet_hist.get(future_closing_price_date, 'Missing')) > Missing # Print with key print(alphabet_hist) > {datetime.datetime(2019, 8, 2, 0, 0): 1196.32, datetime.datetime(2019, 8, 1, 0, 0): 1211.78, datetime.datetime(2019, 7, 31, 0, 0): 1218.2, datetime.datetime(2019, 7, 30, 0, 0): 1228} # Remove entry del(alphabet_hist[closing_price_date]) # Print with key deleted print(alphabet_hist) > {datetime.datetime(2019, 8, 1, 0, 0): 1211.78, datetime.datetime(2019, 7, 31, 0, 0): 1218.2, datetime.datetime(2019, 7, 30, 0, 0): 1228}