Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created August 7, 2020 15:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codecademydev/cd6df219f98ad5b9aa6e8dc1cead3fde to your computer and use it in GitHub Desktop.
Save codecademydev/cd6df219f98ad5b9aa6e8dc1cead3fde to your computer and use it in GitHub Desktop.
Codecademy export
# names of hurricanes
names = ['Cuba I', 'San Felipe II Okeechobee', 'Bahamas', 'Cuba II', 'CubaBrownsville', 'Tampico', 'Labor Day', 'New England', 'Carol', 'Janet', 'Carla', 'Hattie', 'Beulah', 'Camille', 'Edith', 'Anita', 'David', 'Allen', 'Gilbert', 'Hugo', 'Andrew', 'Mitch', 'Isabel', 'Ivan', 'Emily', 'Katrina', 'Rita', 'Wilma', 'Dean', 'Felix', 'Matthew', 'Irma', 'Maria', 'Michael']
# months of hurricanes
months = ['October', 'September', 'September', 'November', 'August', 'September', 'September', 'September', 'September', 'September', 'September', 'October', 'September', 'August', 'September', 'September', 'August', 'August', 'September', 'September', 'August', 'October', 'September', 'September', 'July', 'August', 'September', 'October', 'August', 'September', 'October', 'September', 'September', 'October']
# years of hurricanes
years = [1924, 1928, 1932, 1932, 1933, 1933, 1935, 1938, 1953, 1955, 1961, 1961, 1967, 1969, 1971, 1977, 1979, 1980, 1988, 1989, 1992, 1998, 2003, 2004, 2005, 2005, 2005, 2005, 2007, 2007, 2016, 2017, 2017, 2018]
# maximum sustained winds (mph) of hurricanes
max_sustained_winds = [165, 160, 160, 175, 160, 160, 185, 160, 160, 175, 175, 160, 160, 175, 160, 175, 175, 190, 185, 160, 175, 180, 165, 165, 160, 175, 180, 185, 175, 175, 165, 180, 175, 160]
# areas affected by each hurricane
areas_affected = [['Central America', 'Mexico', 'Cuba', 'Florida', 'The Bahamas'], ['Lesser Antilles', 'The Bahamas', 'United States East Coast', 'Atlantic Canada'], ['The Bahamas', 'Northeastern United States'], ['Lesser Antilles', 'Jamaica', 'Cayman Islands', 'Cuba', 'The Bahamas', 'Bermuda'], ['The Bahamas', 'Cuba', 'Florida', 'Texas', 'Tamaulipas'], ['Jamaica', 'Yucatn Peninsula'], ['The Bahamas', 'Florida', 'Georgia', 'The Carolinas', 'Virginia'], ['Southeastern United States', 'Northeastern United States', 'Southwestern Quebec'], ['Bermuda', 'New England', 'Atlantic Canada'], ['Lesser Antilles', 'Central America'], ['Texas', 'Louisiana', 'Midwestern United States'], ['Central America'], ['The Caribbean', 'Mexico', 'Texas'], ['Cuba', 'United States Gulf Coast'], ['The Caribbean', 'Central America', 'Mexico', 'United States Gulf Coast'], ['Mexico'], ['The Caribbean', 'United States East Coast'], ['The Caribbean', 'Yucatan Peninsula', 'Mexico', 'South Texas'], ['Jamaica', 'Venezuela', 'Central America', 'Hispaniola', 'Mexico'], ['The Caribbean', 'United States East Coast'], ['The Bahamas', 'Florida', 'United States Gulf Coast'], ['Central America', 'Yucatan Peninsula', 'South Florida'], ['Greater Antilles', 'Bahamas', 'Eastern United States', 'Ontario'], ['The Caribbean', 'Venezuela', 'United States Gulf Coast'], ['Windward Islands', 'Jamaica', 'Mexico', 'Texas'], ['Bahamas', 'United States Gulf Coast'], ['Cuba', 'United States Gulf Coast'], ['Greater Antilles', 'Central America', 'Florida'], ['The Caribbean', 'Central America'], ['Nicaragua', 'Honduras'], ['Antilles', 'Venezuela', 'Colombia', 'United States East Coast', 'Atlantic Canada'], ['Cape Verde', 'The Caribbean', 'British Virgin Islands', 'U.S. Virgin Islands', 'Cuba', 'Florida'], ['Lesser Antilles', 'Virgin Islands', 'Puerto Rico', 'Dominican Republic', 'Turks and Caicos Islands'], ['Central America', 'United States Gulf Coast (especially Florida Panhandle)']]
# damages (USD($)) of hurricanes
damages = ['Damages not recorded', '100M', 'Damages not recorded', '40M', '27.9M', '5M', 'Damages not recorded', '306M', '2M', '65.8M', '326M', '60.3M', '208M', '1.42B', '25.4M', 'Damages not recorded', '1.54B', '1.24B', '7.1B', '10B', '26.5B', '6.2B', '5.37B', '23.3B', '1.01B', '125B', '12B', '29.4B', '1.76B', '720M', '15.1B', '64.8B', '91.6B', '25.1B']
# deaths for each hurricane
deaths = [90,4000,16,3103,179,184,408,682,5,1023,43,319,688,259,37,11,2068,269,318,107,65,19325,51,124,17,1836,125,87,45,133,603,138,3057,74]
# write your update damages function here:
def update_damages(lst):
new_damages = []
for damage in lst:
new_damage = damage[0:len(damage) - 1]
if damage[-1] == "B": #if in billions
new_damage = float(new_damage) * 1000000000 #billion
new_damages.append(float(new_damage))
elif damage[-1] == "M":
new_damage = float(new_damage) * 1000000 # million
new_damages.append(float(new_damage))
else:
new_damages.append(damage) # if
return new_damages
# update_damages(damages)
# write your construct hurricane dictionary function here:
def make_dict():
final_dict = {}
for i in range(0, 34):
keys = ["Name","Month", "Year", "Max Sustained Wind", "Areas Affected", "Damage", "Deaths"]
vals = [names[i], months[i], years[i], max_sustained_winds[i], areas_affected[i], damages[i]]
value_for_dict_2 = dict(zip(keys, vals))
final_dict[names[i]] = value_for_dict_2
return final_dict
hurricanes_and_info = make_dict()
#print(hurricanes_and_info)
# write your construct hurricane by year dictionary function here:
def org_by_year(dct):
new_years = []
canes = dct.values()
for i in range(len(dct)):
current_year = years[i]
new_years.append(current_year)
year_dict = dict(zip(new_years, canes))
return year_dict
year_sort = org_by_year(hurricanes_and_info)
#print(year_sort)
# write your count affected areas function here:
def affect_count():
individ_areas = {}
for areas in areas_affected:
for area in areas:
if area not in individ_areas.keys():
individ_areas[area] = 1
else:
individ_areas[area] += 1
return individ_areas
affected_area_dict = affect_count()
#print(affected_area_dict)
# write your find most affected area function here:
def find_greatest_val(dct):
max_val = 0
max_val_key = ['']
for key, val in dct.items():
if val >= max_val:
max_val_key = key
max_val = val
# in an ideal world I would
# handle elif and if there were
# a tie but I'm too lazy rn whoops
return {max_val_key: max_val}
print(find_greatest_val(affected_area_dict))
# write your greatest number of deaths function here:
#def greatest_deaths(dct):
# most_deaths = 0
#deaths_key = ""
#for key, val in dct.items():
#if key == 'Deaths ''
print(find_greatest_val(dict(zip(names, deaths))))
# write your catgeorize by mortality function here:
mortality_scale = {0: 0,
1: 100,
2: 500,
3: 1000,
4: 10000,
5: 10000000000
# i'm being lazy w #5 haha
}
def mortality_sort(scale, dct):
scale_dict = {}
for key in scale.keys():
scale_dict[key] = []
for key, val in dct.items():
for s_key, s_val in scale.items():
if val <= scale[s_key]:
scale_dict[s_key].append([key, s_key])
return scale_dict
#print(mortality_sort(mortality_scale,dict(zip(names, deaths))))
# write your greatest damage function here:
def damage_rate(dct):
max_val = 0
max_val_key = ['']
for key, val in dct.items():
if val != 'Damages not recorded':
if int(val) >= max_val:
max_val_key = key
max_val = int(val)
return {max_val_key: max_val}
updated_damages1 = update_damages(damages)
print(damage_rate(dict(zip(names, updated_damages1))))
# write your catgeorize by damage function here:
damage_scale = {0: 0,
1: 100000000,
2: 1000000000,
3: 10000000000,
4: 50000000000,
5: 5000000000000000000000000000000}
def damage_sort(scale, dct):
#mortality sort function
# w exception for string damage
scale_dict = {}
for key in scale.keys():
scale_dict[key] = []
for key, val in dct.items():
if val != 'Damages not recorded':
for s_key, s_val in scale.items():
if val <= scale[s_key]:
scale_dict[s_key].append([key, s_key])
else:
scale_dict[0].append([key, val])
return scale_dict
print(damage_sort(damage_scale, dict(zip(names, updated_damages1))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment