Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created September 22, 2021 05:49
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/17a5b4ece242d6a629ae9bc31c1b6d24 to your computer and use it in GitHub Desktop.
Save codecademydev/17a5b4ece242d6a629ae9bc31c1b6d24 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', 'Yucatn 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', 'Yucatn 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]
# 1
# Update Recorded Damages
conversion = {"M": 1000000,
"B": 1000000000}
new_damage_list = []
# test function by updating damages
def updated_damages(damage):
#running loop through all damages values
for value in damage:
# want to keep the damages not same, so i am skipping it
if value == "Damages not recorded":
new_damage_list.append(value)
# bcz the suffixes are in the last, we checked to see which suffix is there, and multiply the value converted to float(after removing the suffix through slicing) with the conversion values
else:
if "B" in value:
new_value = float(value[:-1])* conversion["B"]
new_damage_list.append(new_value)
elif "M" in value:
new_value = float(value[:-1])* conversion["M"]
new_damage_list.append(new_value)
return new_damage_list
print(updated_damages(damages))
# 2
# Create a
hurricanes = {}
def library_hurricane(name, month, year, wind, area, updated_damage, death):
for index in range(0, len(names)):
hurricanes[name[index]] = {"Name": name[index], "Month": month[index], "Year": year[index], "Max Sustained Wind": wind[index], "Areas Affected": area[index], "Damage": updated_damage[index], "Deaths": death[index]}
return hurricanes
# Create and view the hurricanes dictionary
print(library_hurricane(names, months, years, max_sustained_winds, areas_affected, new_damage_list, deaths))
# 3
# Organizing by Year
# create a new dictionary of hurricanes with year and key
current_year = []
current_cane =[]
new_dic = { }
def new_library(current_dic):
for val in current_dic:
current_year.append(current_dic[val]['Year'])
for val in current_dic:
current_cane.append(current_dic[val])
for val in range(len(current_dic)):
if current_year[val] in new_dic:
new_dic[current_year[val]].append(current_cane[val])
else:
new_dic[current_year[val]] = [current_cane[val]] # why should the value [current_cane[val]] be list??
print(new_dic)
new_library(hurricanes)
# 4
area_count = [ ]
areas_modified = [ ]
areas_libr = { }
# Counting Damaged Areas
# create dictionary of areas to store the number of hurricanes involved in
def affected_areas(hurricane_data):
for val in hurricane_data:
for val in hurricane_data[val]['Areas Affected']:
if val in areas_modified:
continue
else:
areas_modified.append(val)
print(areas_modified)
for area in areas_modified:
count = 0
for val in hurricane_data:
for val in hurricane_data[val]['Areas Affected']:
if area in val:
count += 1
else:
continue
areas_libr[area] = count
print(areas_libr)
affected_areas(hurricanes)
# 5
# Calculating Maximum Hurricane Count
affected_area = {}
# find most frequently affected area and the number of hurricanes involved in
def most_hurricanes(most_affected_areas):
most_affected_count = 0
affec_area = ' '
for val in most_affected_areas:
if most_affected_areas[val] > most_affected_count:
most_affected_count = most_affected_areas[val]
affec_area = val
else:
continue
for val in most_affected_areas:
if most_affected_areas[val] >= most_affected_count:
most_affected_count = most_affected_areas[val]
affected_area[val] = most_affected_count
print(affected_area)
most_hurricanes(areas_libr)
# 6
# Calculating the Deadliest Hurricane
death_high = { }
# find highest mortality hurricane and the number of deaths
def death_libr(hurricane_libr):
death_count = 0
death_highest = ''
for data in hurricane_libr:
if hurricane_libr[data]['Deaths']> death_count:
death_count = hurricane_libr[data]['Deaths']
#death_high[data]= death_count
death_highest = data
else:
continue
for data in hurricane_libr:
if hurricane_libr[data]['Deaths']>= death_count:
death_count = hurricane_libr[data]['Deaths']
death_high[data]= death_count
print(death_high)
death_libr(hurricanes)
# 7
# Rating Hurricanes by Mortality
mortality_scale = {0: 0, 1: 100, 2: 500, 3: 1000, 4: 10000, 5: 50000}
current_cane = []
hurricanes_by_mortality = {0:[], 1: [], 2: [], 3: [], 4: [], 5: []}
# categorize hurricanes in new dictionary with mortality severity as key
def mortality_scale_dic(hurricane_dict):
for val in hurricane_dict:
if hurricane_dict[val]['Deaths'] == 0:
hurricanes_by_mortality[0].append(hurricane_dict[val])
elif hurricane_dict[val]['Deaths'] > 0 and hurricane_dict[val]['Deaths'] <= 100:
hurricanes_by_mortality[1].append(hurricane_dict[val])
elif hurricane_dict[val]['Deaths'] > 100 and hurricane_dict[val]['Deaths'] <= 500:
hurricanes_by_mortality[2].append(hurricane_dict[val])
elif hurricane_dict[val]['Deaths'] > 500 and hurricane_dict[val]['Deaths'] <= 1000:
hurricanes_by_mortality[3] .append(hurricane_dict[val])
elif hurricane_dict[val]['Deaths'] > 1000 and hurricane_dict[val]['Deaths'] <= 10000:
hurricanes_by_mortality[4].append(hurricane_dict[val])
elif hurricane_dict[val]['Deaths'] > 10000 and hurricane_dict[val]['Deaths'] <= 50000:
hurricanes_by_mortality[5].append(hurricane_dict[val])
return hurricanes_by_mortality
print(mortality_scale_dic(hurricanes))
# 8 Calculating Hurricane Maximum Damage
costly_hurricane = {}
# find highest damage inducing hurricane and its total cost
def great_damage(hurricane_dict):
cost_hurricane = ' '
cost = 0
for val in hurricane_dict:
if hurricane_dict[val]["Damage"] == 'Damages not recorded':
continue
elif hurricane_dict[val]['Damage']> cost:
cost = hurricane_dict[val]['Damage']
cost_hurricane = val
else:
continue
for val in hurricane_dict:
if hurricane_dict[val]["Damage"] == 'Damages not recorded':
continue
elif hurricane_dict[val]['Damage']>= cost:
cost = hurricane_dict[val]['Damage']
costly_hurricane[val] = cost
return costly_hurricane
print(great_damage(hurricanes))
# 9
# Rating Hurricanes by Damage
damage_scale = {0: 0, 1: 100000000, 2: 1000000000, 3: 10000000000, 4: 50000000000}
current_cane = []
hurricanes_by_damage = {0:[], 1: [], 2: [], 3: [], 4: [], 5: []}
# categorize hurricanes in new dictionary with damage severity as key
def damage_scale_dic(hurricane_dict):
for val in hurricane_dict:
if hurricane_dict[val]["Damage"] == 'Damages not recorded':
continue
elif hurricane_dict[val]['Damage'] == 0:
hurricanes_by_damage[0].append(hurricane_dict[val])
elif hurricane_dict[val]['Damage'] > 0 and hurricane_dict[val]['Damage'] <= 100000000:
hurricanes_by_damage[1].append(hurricane_dict[val])
elif hurricane_dict[val]['Damage'] > 100000000 and hurricane_dict[val]['Damage'] <= 1000000000:
hurricanes_by_damage[2].append(hurricane_dict[val])
elif hurricane_dict[val]['Damage'] > 1000000000 and hurricane_dict[val]['Damage'] <= 10000000000:
hurricanes_by_damage[3] .append(hurricane_dict[val])
elif hurricane_dict[val]['Damage'] > 10000000000 and hurricane_dict[val]['Damage'] <= 50000000000:
hurricanes_by_damage[4].append(hurricane_dict[val])
elif hurricane_dict[val]['Damage'] > 50000000000 and hurricane_dict[val]['Damage'] <= 500000000000:
hurricanes_by_damage[5].append(hurricane_dict[val])
return hurricanes_by_damage
print(damage_scale_dic(hurricanes))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment