-
-
Save codecademydev/17a5b4ece242d6a629ae9bc31c1b6d24 to your computer and use it in GitHub Desktop.
Codecademy export
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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